Loading core/res/res/values/config.xml +9 −0 Original line number Diff line number Diff line Loading @@ -3541,4 +3541,13 @@ <!-- Brand value for attestation of misprovisioned device. --> <string name="config_misprovisionedBrandValue" translatable="false"></string> <!-- 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 @@ -3470,4 +3470,9 @@ <java-symbol type="integer" name="db_wal_truncate_size" /> <java-symbol type="integer" name="config_wakeUpDelayDoze" /> <java-symbol type="string" name="config_dozeWakeScreenSensorType" /> <!-- 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 @@ -4926,15 +4950,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 +9 −0 Original line number Diff line number Diff line Loading @@ -3541,4 +3541,13 @@ <!-- Brand value for attestation of misprovisioned device. --> <string name="config_misprovisionedBrandValue" translatable="false"></string> <!-- 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 @@ -3470,4 +3470,9 @@ <java-symbol type="integer" name="db_wal_truncate_size" /> <java-symbol type="integer" name="config_wakeUpDelayDoze" /> <java-symbol type="string" name="config_dozeWakeScreenSensorType" /> <!-- 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 @@ -4926,15 +4950,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