Loading core/res/res/values/config.xml +8 −0 Original line number Diff line number Diff line Loading @@ -3463,4 +3463,12 @@ <!-- Whether or not swipe up gesture's opt-in setting is available on this device --> <bool name="config_swipe_up_gesture_setting_available">false</bool> <!-- Pre-scale volume at volume step 1 for Absolute Volume --> <fraction name="config_prescaleAbsoluteVolume_index1">50%</fraction> <!-- Pre-scale volume at volume step 2 for Absolute Volume --> <fraction name="config_prescaleAbsoluteVolume_index2">70%</fraction> <!-- Pre-scale volume at volume step 3 for Absolute Volume --> <fraction name="config_prescaleAbsoluteVolume_index3">85%</fraction> </resources> core/res/res/values/symbols.xml +5 −0 Original line number Diff line number Diff line Loading @@ -3393,4 +3393,9 @@ <java-symbol type="integer" name="config_defaultHapticFeedbackIntensity" /> <java-symbol type="integer" name="config_defaultNotificationVibrationIntensity" /> <!-- For Bluetooth AbsoluteVolume --> <java-symbol type="fraction" name="config_prescaleAbsoluteVolume_index1" /> <java-symbol type="fraction" name="config_prescaleAbsoluteVolume_index2" /> <java-symbol type="fraction" name="config_prescaleAbsoluteVolume_index3" /> </resources> services/core/java/com/android/server/audio/AudioService.java +28 −10 Original line number Diff line number Diff line Loading @@ -627,6 +627,13 @@ public class AudioService extends IAudioService.Stub // If absolute volume is supported in AVRCP device private boolean mAvrcpAbsVolSupported = false; // Pre-scale for Bluetooth Absolute Volume private float[] mPrescaleAbsoluteVolume = new float[] { 0.5f, // Pre-scale for index 1 0.7f, // Pre-scale for index 2 0.85f, // Pre-scale for index 3 }; private static Long mLastDeviceConnectMsgTime = new Long(0); private NotificationManager mNm; Loading Loading @@ -878,6 +885,23 @@ public class AudioService extends IAudioService.Stub mUserManagerInternal.addUserRestrictionsListener(mUserRestrictionsListener); mRecordMonitor.initMonitor(); final float[] preScale = new float[3]; preScale[0] = mContext.getResources().getFraction( com.android.internal.R.fraction.config_prescaleAbsoluteVolume_index1, 1, 1); preScale[1] = mContext.getResources().getFraction( com.android.internal.R.fraction.config_prescaleAbsoluteVolume_index2, 1, 1); preScale[2] = mContext.getResources().getFraction( com.android.internal.R.fraction.config_prescaleAbsoluteVolume_index3, 1, 1); for (int i = 0; i < preScale.length; i++) { if (0.0f <= preScale[i] && preScale[i] <= 1.0f) { mPrescaleAbsoluteVolume[i] = preScale[i]; } } } public void systemReady() { Loading Loading @@ -4879,15 +4903,9 @@ public class AudioService extends IAudioService.Stub if (index == 0) { // 0% for volume 0 index = 0; } else if (index == 1) { // 50% for volume 1 index = (int)(mIndexMax * 0.5) /10; } else if (index == 2) { // 70% for volume 2 index = (int)(mIndexMax * 0.70) /10; } else if (index == 3) { // 85% for volume 3 index = (int)(mIndexMax * 0.85) /10; } else if (index > 0 && index <= 3) { // Pre-scale for volume steps 1 2 and 3 index = (int) (mIndexMax * mPrescaleAbsoluteVolume[index - 1]) / 10; } else { // otherwise, full gain index = (mIndexMax + 5) / 10; Loading Loading
core/res/res/values/config.xml +8 −0 Original line number Diff line number Diff line Loading @@ -3463,4 +3463,12 @@ <!-- Whether or not swipe up gesture's opt-in setting is available on this device --> <bool name="config_swipe_up_gesture_setting_available">false</bool> <!-- Pre-scale volume at volume step 1 for Absolute Volume --> <fraction name="config_prescaleAbsoluteVolume_index1">50%</fraction> <!-- Pre-scale volume at volume step 2 for Absolute Volume --> <fraction name="config_prescaleAbsoluteVolume_index2">70%</fraction> <!-- Pre-scale volume at volume step 3 for Absolute Volume --> <fraction name="config_prescaleAbsoluteVolume_index3">85%</fraction> </resources>
core/res/res/values/symbols.xml +5 −0 Original line number Diff line number Diff line Loading @@ -3393,4 +3393,9 @@ <java-symbol type="integer" name="config_defaultHapticFeedbackIntensity" /> <java-symbol type="integer" name="config_defaultNotificationVibrationIntensity" /> <!-- For Bluetooth AbsoluteVolume --> <java-symbol type="fraction" name="config_prescaleAbsoluteVolume_index1" /> <java-symbol type="fraction" name="config_prescaleAbsoluteVolume_index2" /> <java-symbol type="fraction" name="config_prescaleAbsoluteVolume_index3" /> </resources>
services/core/java/com/android/server/audio/AudioService.java +28 −10 Original line number Diff line number Diff line Loading @@ -627,6 +627,13 @@ public class AudioService extends IAudioService.Stub // If absolute volume is supported in AVRCP device private boolean mAvrcpAbsVolSupported = false; // Pre-scale for Bluetooth Absolute Volume private float[] mPrescaleAbsoluteVolume = new float[] { 0.5f, // Pre-scale for index 1 0.7f, // Pre-scale for index 2 0.85f, // Pre-scale for index 3 }; private static Long mLastDeviceConnectMsgTime = new Long(0); private NotificationManager mNm; Loading Loading @@ -878,6 +885,23 @@ public class AudioService extends IAudioService.Stub mUserManagerInternal.addUserRestrictionsListener(mUserRestrictionsListener); mRecordMonitor.initMonitor(); final float[] preScale = new float[3]; preScale[0] = mContext.getResources().getFraction( com.android.internal.R.fraction.config_prescaleAbsoluteVolume_index1, 1, 1); preScale[1] = mContext.getResources().getFraction( com.android.internal.R.fraction.config_prescaleAbsoluteVolume_index2, 1, 1); preScale[2] = mContext.getResources().getFraction( com.android.internal.R.fraction.config_prescaleAbsoluteVolume_index3, 1, 1); for (int i = 0; i < preScale.length; i++) { if (0.0f <= preScale[i] && preScale[i] <= 1.0f) { mPrescaleAbsoluteVolume[i] = preScale[i]; } } } public void systemReady() { Loading Loading @@ -4879,15 +4903,9 @@ public class AudioService extends IAudioService.Stub if (index == 0) { // 0% for volume 0 index = 0; } else if (index == 1) { // 50% for volume 1 index = (int)(mIndexMax * 0.5) /10; } else if (index == 2) { // 70% for volume 2 index = (int)(mIndexMax * 0.70) /10; } else if (index == 3) { // 85% for volume 3 index = (int)(mIndexMax * 0.85) /10; } else if (index > 0 && index <= 3) { // Pre-scale for volume steps 1 2 and 3 index = (int) (mIndexMax * mPrescaleAbsoluteVolume[index - 1]) / 10; } else { // otherwise, full gain index = (mIndexMax + 5) / 10; Loading