Bug 1289356 - only resume music when we're in the state 'AUDIOFOCUS_LOSS_TRANSIENT'. draft
authorAlastor Wu <alwu@mozilla.com>
Fri, 29 Jul 2016 19:22:31 +0800
changeset 394278 2c1b2305bee27da1d58fd2720e61cf757149b8ea
parent 394055 ddeb0295df692695b36295177d6790e5393e1f9a
child 526776 ab1e94b7da1c725fc97a20fee98162dc1fbbeac6
push id24534
push useralwu@mozilla.com
push dateFri, 29 Jul 2016 11:23:25 +0000
bugs1289356
milestone50.0a1
Bug 1289356 - only resume music when we're in the state 'AUDIOFOCUS_LOSS_TRANSIENT'. The audio should only be resumed when we lose audio-focus transiently. Eg. interrupt by ringtone or telephony. MozReview-Commit-ID: 78QHSqxEhcp
mobile/android/base/java/org/mozilla/gecko/media/AudioFocusAgent.java
--- a/mobile/android/base/java/org/mozilla/gecko/media/AudioFocusAgent.java
+++ b/mobile/android/base/java/org/mozilla/gecko/media/AudioFocusAgent.java
@@ -61,16 +61,19 @@ public class AudioFocusAgent {
                         break;
                     case AudioManager.AUDIOFOCUS_LOSS_TRANSIENT:
                         Log.d(LOGTAG, "onAudioFocusChange, AUDIOFOCUS_LOSS_TRANSIENT");
                         notifyObservers("AudioFocusChanged", "lostAudioFocusTransiently");
                         notifyMediaControlService(MediaControlService.ACTION_PAUSE);
                         mAudioFocusState = LOST_FOCUS_TRANSIENT;
                         break;
                     case AudioManager.AUDIOFOCUS_GAIN:
+                        if (!mAudioFocusState.equals(LOST_FOCUS_TRANSIENT)) {
+                            return;
+                        }
                         Log.d(LOGTAG, "onAudioFocusChange, AUDIOFOCUS_GAIN");
                         notifyObservers("AudioFocusChanged", "gainAudioFocus");
                         notifyMediaControlService(MediaControlService.ACTION_PLAY);
                         mAudioFocusState = OWN_FOCUS;
                         break;
                     default:
                 }
             }