OSDN Git Service

Pause requests that come in while a phone call is in progress should override
authorMarco Nelissen <marcone@google.com>
Wed, 7 Apr 2010 00:29:07 +0000 (17:29 -0700)
committerMarco Nelissen <marcone@google.com>
Wed, 7 Apr 2010 00:33:32 +0000 (17:33 -0700)
the auto resume behavior. This makes it so that music playback will not auto
resume after undocking or unplugging to answer a call (because we get pause
requests for those, because they are routing changes).
Fixes bug 2474691.

Change-Id: I583b614c6c394064bc8b625e673781e33c931fb9

src/com/android/music/MediaPlaybackService.java

index 2cf0dd3..e1f82a6 100644 (file)
@@ -160,8 +160,8 @@ public class MediaPlaybackService extends Service {
             if (state == TelephonyManager.CALL_STATE_RINGING) {
                 AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
                 int ringvolume = audioManager.getStreamVolume(AudioManager.STREAM_RING);
+                mResumeAfterCall = (isPlaying() || mResumeAfterCall) && (getAudioId() >= 0);
                 if (ringvolume > 0) {
-                    mResumeAfterCall = (isPlaying() || mResumeAfterCall) && (getAudioId() >= 0);
                     pause();
                 }
             } else if (state == TelephonyManager.CALL_STATE_OFFHOOK) {
@@ -250,13 +250,16 @@ public class MediaPlaybackService extends Service {
             } else if (CMDTOGGLEPAUSE.equals(cmd) || TOGGLEPAUSE_ACTION.equals(action)) {
                 if (isPlaying()) {
                     pause();
+                    mResumeAfterCall = false;
                 } else {
                     play();
                 }
             } else if (CMDPAUSE.equals(cmd) || PAUSE_ACTION.equals(action)) {
                 pause();
+                mResumeAfterCall = false;
             } else if (CMDSTOP.equals(cmd)) {
                 pause();
+                mResumeAfterCall = false;
                 seek(0);
             } else if (MediaAppWidgetProvider.CMDAPPWIDGETUPDATE.equals(cmd)) {
                 // Someone asked us to refresh a set of specific widgets, probably
@@ -631,13 +634,16 @@ public class MediaPlaybackService extends Service {
             } else if (CMDTOGGLEPAUSE.equals(cmd) || TOGGLEPAUSE_ACTION.equals(action)) {
                 if (isPlaying()) {
                     pause();
+                    mResumeAfterCall = false;
                 } else {
                     play();
                 }
             } else if (CMDPAUSE.equals(cmd) || PAUSE_ACTION.equals(action)) {
                 pause();
+                mResumeAfterCall = false;
             } else if (CMDSTOP.equals(cmd)) {
                 pause();
+                mResumeAfterCall = false;
                 seek(0);
             }
         }