diff options
author | John Spurlock <jspurlock@google.com> | 2014-12-17 20:23:55 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-12-17 20:23:55 +0000 |
commit | 09ab7d0663210f7b87c830b4560474a05564c37a (patch) | |
tree | fd9fa0a5e139bbf37eaf87e180feb80bc35797eb /media | |
parent | 2dbb8e13de3a7ced961bbf84733f47e21a6a823d (diff) | |
parent | caba360367ea9900a48066f97f4b6e59877a9df6 (diff) | |
download | frameworks_base-09ab7d0663210f7b87c830b4560474a05564c37a.zip frameworks_base-09ab7d0663210f7b87c830b4560474a05564c37a.tar.gz frameworks_base-09ab7d0663210f7b87c830b4560474a05564c37a.tar.bz2 |
am caba3603: am e7f301a0: Merge "Audio policy: Fix deprecated shouldVibrate api." into lmp-mr1-dev
* commit 'caba360367ea9900a48066f97f4b6e59877a9df6':
Audio policy: Fix deprecated shouldVibrate api.
Diffstat (limited to 'media')
-rw-r--r-- | media/java/android/media/AudioService.java | 58 |
1 files changed, 35 insertions, 23 deletions
diff --git a/media/java/android/media/AudioService.java b/media/java/android/media/AudioService.java index f0150d4..8a543ce 100644 --- a/media/java/android/media/AudioService.java +++ b/media/java/android/media/AudioService.java @@ -1841,12 +1841,22 @@ public class AudioService extends IAudioService.Stub { } public void setRingerModeExternal(int ringerMode, String caller) { - setRingerMode(ringerMode, caller, true /*external*/); + final long identity = Binder.clearCallingIdentity(); + try { + setRingerMode(ringerMode, caller, true /*external*/); + } finally { + Binder.restoreCallingIdentity(identity); + } } public void setRingerModeInternal(int ringerMode, String caller) { enforceSelfOrSystemUI("setRingerModeInternal"); - setRingerMode(ringerMode, caller, false /*external*/); + final long identity = Binder.clearCallingIdentity(); + try { + setRingerMode(ringerMode, caller, false /*external*/); + } finally { + Binder.restoreCallingIdentity(identity); + } } private void setRingerMode(int ringerMode, String caller, boolean external) { @@ -1860,26 +1870,28 @@ public class AudioService extends IAudioService.Stub { if ((ringerMode == AudioManager.RINGER_MODE_VIBRATE) && !mHasVibrator) { ringerMode = AudioManager.RINGER_MODE_SILENT; } - final int ringerModeInternal = getRingerModeInternal(); - final int ringerModeExternal = getRingerModeExternal(); - if (external) { - setRingerModeExt(ringerMode); - if (mRingerModeDelegate != null) { - ringerMode = mRingerModeDelegate.onSetRingerModeExternal(ringerModeExternal, - ringerMode, caller, ringerModeInternal); - } - if (ringerMode != ringerModeInternal) { - setRingerModeInt(ringerMode, true /*persist*/); - } - } else /*internal*/ { - if (ringerMode != ringerModeInternal) { - setRingerModeInt(ringerMode, true /*persist*/); - } - if (mRingerModeDelegate != null) { - ringerMode = mRingerModeDelegate.onSetRingerModeInternal(ringerModeInternal, - ringerMode, caller, ringerModeExternal); + synchronized (mSettingsLock) { + final int ringerModeInternal = getRingerModeInternal(); + final int ringerModeExternal = getRingerModeExternal(); + if (external) { + setRingerModeExt(ringerMode); + if (mRingerModeDelegate != null) { + ringerMode = mRingerModeDelegate.onSetRingerModeExternal(ringerModeExternal, + ringerMode, caller, ringerModeInternal); + } + if (ringerMode != ringerModeInternal) { + setRingerModeInt(ringerMode, true /*persist*/); + } + } else /*internal*/ { + if (ringerMode != ringerModeInternal) { + setRingerModeInt(ringerMode, true /*persist*/); + } + if (mRingerModeDelegate != null) { + ringerMode = mRingerModeDelegate.onSetRingerModeInternal(ringerModeInternal, + ringerMode, caller, ringerModeExternal); + } + setRingerModeExt(ringerMode); } - setRingerModeExt(ringerMode); } } @@ -1968,10 +1980,10 @@ public class AudioService extends IAudioService.Stub { switch (getVibrateSetting(vibrateType)) { case AudioManager.VIBRATE_SETTING_ON: - return getRingerModeInternal() != AudioManager.RINGER_MODE_SILENT; + return getRingerModeExternal() != AudioManager.RINGER_MODE_SILENT; case AudioManager.VIBRATE_SETTING_ONLY_SILENT: - return getRingerModeInternal() == AudioManager.RINGER_MODE_VIBRATE; + return getRingerModeExternal() == AudioManager.RINGER_MODE_VIBRATE; case AudioManager.VIBRATE_SETTING_OFF: // return false, even for incoming calls |