diff options
author | Jessica Wagantall <jwagantall@cyngn.com> | 2016-04-20 11:33:07 -0700 |
---|---|---|
committer | Jessica Wagantall <jwagantall@cyngn.com> | 2016-04-20 11:33:07 -0700 |
commit | 303cef4c34e57ac019fe825f24c2fb4fa611ac4e (patch) | |
tree | 5f8d1509763390490780d47807db9674e3b167da /services/core | |
parent | 9878124adb6f4de9dae0d9eb76102e993fc0b9a9 (diff) | |
parent | 3cd1905d857913241198f65066e1aa78516192ea (diff) | |
download | frameworks_base-303cef4c34e57ac019fe825f24c2fb4fa611ac4e.zip frameworks_base-303cef4c34e57ac019fe825f24c2fb4fa611ac4e.tar.gz frameworks_base-303cef4c34e57ac019fe825f24c2fb4fa611ac4e.tar.bz2 |
Merge tag 'android-6.0.1_r30' into HEAD
Ticket: RM-234
Android 6.0.1 release 30
Change-Id: I1bd7cf4081a12d28dc5da8b53b9124180afaa23d
Diffstat (limited to 'services/core')
-rw-r--r-- | services/core/java/com/android/server/audio/AudioService.java | 25 | ||||
-rw-r--r-- | services/core/java/com/android/server/fingerprint/FingerprintService.java | 6 |
2 files changed, 29 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/audio/AudioService.java b/services/core/java/com/android/server/audio/AudioService.java index b3b328a..ef2ff62 100644 --- a/services/core/java/com/android/server/audio/AudioService.java +++ b/services/core/java/com/android/server/audio/AudioService.java @@ -4003,8 +4003,29 @@ public class AudioService extends IAudioService.Stub { int index; if (mIsMuted) { index = 0; - } else if (((device & AudioSystem.DEVICE_OUT_ALL_A2DP) != 0 && mAvrcpAbsVolSupported) - || ((device & mFullVolumeDevices) != 0)) { + } else if ((device & AudioSystem.DEVICE_OUT_ALL_A2DP) != 0 && mAvrcpAbsVolSupported) { + /* Special handling for Bluetooth Absolute Volume scenario + * If we send full audio gain, some accessories are too loud even at its lowest + * volume. We are not able to enumerate all such accessories, so here is the + * workaround from phone side. + * For the lowest volume steps 1 and 2, restrict audio gain to 50% and 75%. + * For volume step 0, set audio gain to 0 as some accessories won't mute on their end. + */ + int i = (getIndex(device) + 5)/10; + if (i == 0) { + // 0% for volume 0 + index = 0; + } else if (i == 1) { + // 50% for volume 1 + index = (int)(mIndexMax * 0.5) /10; + } else if (i == 2) { + // 75% for volume 2 + index = (int)(mIndexMax * 0.75) /10; + } else { + // otherwise, full gain + index = (mIndexMax + 5)/10; + } + } else if ((device & mFullVolumeDevices) != 0) { index = (mIndexMax + 5)/10; } else { index = (getIndex(device) + 5)/10; diff --git a/services/core/java/com/android/server/fingerprint/FingerprintService.java b/services/core/java/com/android/server/fingerprint/FingerprintService.java index 6612218..429a31f 100644 --- a/services/core/java/com/android/server/fingerprint/FingerprintService.java +++ b/services/core/java/com/android/server/fingerprint/FingerprintService.java @@ -1157,6 +1157,12 @@ public class FingerprintService extends SystemService implements IBinder.DeathRe public void onUserSwitching(int newUserId, IRemoteCallback reply) { mHandler.obtainMessage(MSG_USER_SWITCHING, newUserId, 0 /* unused */) .sendToTarget(); + if (reply != null) { + try { + reply.sendResult(null); + } catch (RemoteException e) { + } + } } @Override public void onUserSwitchComplete(int newUserId) throws RemoteException { |