summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorJohn Spurlock <jspurlock@google.com>2014-12-17 20:23:55 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-12-17 20:23:55 +0000
commit09ab7d0663210f7b87c830b4560474a05564c37a (patch)
treefd9fa0a5e139bbf37eaf87e180feb80bc35797eb /media
parent2dbb8e13de3a7ced961bbf84733f47e21a6a823d (diff)
parentcaba360367ea9900a48066f97f4b6e59877a9df6 (diff)
downloadframeworks_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.java58
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