diff options
| -rw-r--r-- | services/core/java/com/android/server/audio/AudioService.java | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index 16a962683707..cdeaca26375b 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -1231,7 +1231,7 @@ public class AudioService extends IAudioService.Stub // Restore call state synchronized (mDeviceBroker.mSetModeLock) { onUpdateAudioMode(AudioSystem.MODE_CURRENT, android.os.Process.myPid(), - mContext.getPackageName()); + mContext.getPackageName(), true /*force*/); } final int forSys; synchronized (mSettingsLock) { @@ -4614,7 +4614,8 @@ public class AudioService extends IAudioService.Stub } @GuardedBy("mDeviceBroker.mSetModeLock") - void onUpdateAudioMode(int requestedMode, int requesterPid, String requesterPackage) { + void onUpdateAudioMode(int requestedMode, int requesterPid, String requesterPackage, + boolean force) { if (requestedMode == AudioSystem.MODE_CURRENT) { requestedMode = getMode(); } @@ -4631,7 +4632,7 @@ public class AudioService extends IAudioService.Stub Log.v(TAG, "onUpdateAudioMode() new mode: " + mode + ", current mode: " + mMode.get() + " requested mode: " + requestedMode); } - if (mode != mMode.get()) { + if (mode != mMode.get() || force) { final long identity = Binder.clearCallingIdentity(); int status = mAudioSystem.setPhoneState(mode, uid); Binder.restoreCallingIdentity(identity); @@ -7402,8 +7403,8 @@ public class AudioService extends IAudioService.Stub h.setPlaybackActive(mPlaybackMonitor.isPlaybackActiveForUid(h.getUid())); h.setRecordingActive(mRecordMonitor.isRecordingActiveForUid(h.getUid())); if (wasActive != h.isActive()) { - onUpdateAudioMode(AudioSystem.MODE_CURRENT, - android.os.Process.myPid(), mContext.getPackageName()); + onUpdateAudioMode(AudioSystem.MODE_CURRENT, android.os.Process.myPid(), + mContext.getPackageName(), false /*force*/); } } break; @@ -7428,7 +7429,7 @@ public class AudioService extends IAudioService.Stub case MSG_UPDATE_AUDIO_MODE: synchronized (mDeviceBroker.mSetModeLock) { - onUpdateAudioMode(msg.arg1, msg.arg2, (String) msg.obj); + onUpdateAudioMode(msg.arg1, msg.arg2, (String) msg.obj, false /*force*/); } break; } |