diff --git a/res/values/arrays.xml b/res/values/arrays.xml
index 3984c214bf7..2e4738bdfcb 100644
--- a/res/values/arrays.xml
+++ b/res/values/arrays.xml
@@ -318,7 +318,8 @@
- - 1 (Default)
+ - Use System Default: %1$d
+ - 1
- 2
- 3
- 4
@@ -326,7 +327,8 @@
-
+
+
- 1
- 2
- 3
diff --git a/src/com/android/settings/development/DevelopmentSettings.java b/src/com/android/settings/development/DevelopmentSettings.java
index 2912e174b60..078489efeb9 100644
--- a/src/com/android/settings/development/DevelopmentSettings.java
+++ b/src/com/android/settings/development/DevelopmentSettings.java
@@ -901,6 +901,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
}
writeOverlayDisplayDevicesOptions(null);
writeAppProcessLimitOptions(null);
+ writeBluetoothMaxConnectedAudioDevices("");
mHaveDebugSettings = false;
updateAllOptions();
mDontPokeProperties = false;
@@ -1884,12 +1885,44 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
mBluetoothSelectA2dpLdacPlaybackQuality.setValue(values[index]);
mBluetoothSelectA2dpLdacPlaybackQuality.setSummary(summaries[index]);
- // Init the maximum connected devices - Default
- values = getResources().getStringArray(R.array.bluetooth_max_connected_audio_devices_values);
- summaries = getResources().getStringArray(R.array.bluetooth_max_connected_audio_devices);
- index = 0;
- mBluetoothSelectMaxConnectedAudioDevices.setValue(values[index]);
- mBluetoothSelectMaxConnectedAudioDevices.setSummary(summaries[index]);
+ // Init the maximum connected devices
+ initBluetoothMaxConnectedAudioDevicesPreference();
+ updateBluetoothMaxConnectedAudioDevicesPreference();
+ }
+
+ private void initBluetoothMaxConnectedAudioDevicesPreference() {
+ int defaultMaxConnectedAudioDevices = getResources().getInteger(
+ com.android.internal.R.integer.config_bluetooth_max_connected_audio_devices);
+ final CharSequence[] entries = mBluetoothSelectMaxConnectedAudioDevices.getEntries();
+ entries[0] = String.format(entries[0].toString(), defaultMaxConnectedAudioDevices);
+ mBluetoothSelectMaxConnectedAudioDevices.setEntries(entries);
+ }
+
+ private void updateBluetoothMaxConnectedAudioDevicesPreference() {
+ final CharSequence[] entries = mBluetoothSelectMaxConnectedAudioDevices.getEntries();
+ final String currentValue =
+ SystemProperties.get(BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES_PROPERTY);
+ int index = 0;
+ if (!currentValue.isEmpty()) {
+ index = mBluetoothSelectMaxConnectedAudioDevices.findIndexOfValue(currentValue);
+ if (index < 0) {
+ // Reset property value when value is illegal
+ SystemProperties.set(BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES_PROPERTY, "");
+ index = 0;
+ }
+ }
+ mBluetoothSelectMaxConnectedAudioDevices.setValueIndex(index);
+ mBluetoothSelectMaxConnectedAudioDevices.setSummary(entries[index]);
+ }
+
+ private void writeBluetoothMaxConnectedAudioDevices(Object newValue) {
+ String newValueString = newValue.toString();
+ if (mBluetoothSelectMaxConnectedAudioDevices.findIndexOfValue(newValueString) <= 0) {
+ // Reset property value when default is chosen or when value is illegal
+ newValueString = "";
+ }
+ SystemProperties.set(BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES_PROPERTY, newValueString);
+ updateBluetoothMaxConnectedAudioDevicesPreference();
}
private void writeBluetoothAvrcpVersion(Object newValue) {
@@ -2058,15 +2091,6 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
}
}
- private void writeBluetoothMaxConnectedAudioDevices(Object newValue) {
- SystemProperties.set(BLUETOOTH_MAX_CONNECTED_AUDIO_DEVICES_PROPERTY, newValue.toString());
- int index = mBluetoothSelectMaxConnectedAudioDevices.findIndexOfValue(newValue.toString());
- if (index >= 0) {
- String[] titles = getResources().getStringArray(R.array.bluetooth_max_connected_audio_devices);
- mBluetoothSelectMaxConnectedAudioDevices.setSummary(titles[index]);
- }
- }
-
private void writeBluetoothConfigurationOption(Preference preference,
Object newValue) {
String[] summaries;