Bluetooth: Use "Disable" in-band ringing instead of "Enable"
* Given that in-band ringing is enabled by default on supported devices,
the corresponding development settings should be rephrased from
"Enable in-band ringing" to "Disable in-band ringing" to hint that it
is enabled by default
* This also gets rid of special logic to check that option in
initialization
* Add strings to reflect this update
* Modify BluetoothInbandRingingPreferenceControllerTest to reflect this
change
Bug: 65383086
Test: make, try toggling the preference and verify whether in-band
ringing works or not, RunSettingsRoboTests
Change-Id: I29f91c7d12c725b12452ec163b75051ff28f500d
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 3dc342b..be683d2 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -396,6 +396,11 @@
<!-- Summary for bluetooth item in connection detail page -->
<string name="bluetooth_pref_summary">Allow device to pair and connect to bluetooth devices</string>
+ <!-- Setting Checkbox title for disabling Bluetooth inband ringing in Development Settings -->
+ <string name="bluetooth_disable_inband_ringing">Disable in-band ringing</string>
+ <!-- Summary of checkbox for disabling Bluetooth inband ringing in Development Settings -->
+ <string name="bluetooth_disable_inband_ringing_summary">Don’t play custom phone ringtones on Bluetooth headsets</string>
+
<!-- Title for connected device group [CHAR LIMIT=none]-->
<string name="connected_device_connected_title">Currently connected</string>
<!-- Title for connected device group [CHAR LIMIT=none]-->
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index 60efcab..18aeeef 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -240,9 +240,9 @@
android:summary="@string/bluetooth_disable_absolute_volume_summary"/>
<SwitchPreference
- android:key="bluetooth_enable_inband_ringing"
- android:title="@string/bluetooth_enable_inband_ringing"
- android:summary="@string/bluetooth_enable_inband_ringing_summary"/>
+ android:key="bluetooth_disable_inband_ringing"
+ android:title="@string/bluetooth_disable_inband_ringing"
+ android:summary="@string/bluetooth_disable_inband_ringing_summary"/>
<ListPreference
android:key="bluetooth_select_avrcp_version"
diff --git a/src/com/android/settings/development/BluetoothInbandRingingPreferenceController.java b/src/com/android/settings/development/BluetoothInbandRingingPreferenceController.java
index db5a881..809db19 100644
--- a/src/com/android/settings/development/BluetoothInbandRingingPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothInbandRingingPreferenceController.java
@@ -31,11 +31,11 @@
DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener,
PreferenceControllerMixin {
- private static final String BLUETOOTH_ENABLE_INBAND_RINGING_KEY =
- "bluetooth_enable_inband_ringing";
+ private static final String BLUETOOTH_DISABLE_INBAND_RINGING_KEY =
+ "bluetooth_disable_inband_ringing";
@VisibleForTesting
- static final String BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY =
- "persist.bluetooth.enableinbandringing";
+ static final String BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY =
+ "persist.bluetooth.disableinbandringing";
private SwitchPreference mPreference;
@@ -50,7 +50,7 @@
@Override
public String getPreferenceKey() {
- return BLUETOOTH_ENABLE_INBAND_RINGING_KEY;
+ return BLUETOOTH_DISABLE_INBAND_RINGING_KEY;
}
@Override
@@ -62,16 +62,16 @@
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
- final boolean isEnabled = (Boolean) newValue;
- SystemProperties.set(BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY,
- isEnabled ? "true" : "false");
+ final boolean isChecked = (Boolean) newValue;
+ SystemProperties.set(BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY,
+ isChecked ? "true" : "false");
return true;
}
@Override
public void updateState(Preference preference) {
final boolean isEnabled = SystemProperties.getBoolean(
- BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY, true /* default */);
+ BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY, false /* default */);
mPreference.setChecked(isEnabled);
}
@@ -83,9 +83,8 @@
@Override
protected void onDeveloperOptionsSwitchDisabled() {
mPreference.setEnabled(false);
- // the default setting for this preference is the enabled state
- mPreference.setChecked(true);
- SystemProperties.set(BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY, "true");
+ mPreference.setChecked(false);
+ SystemProperties.set(BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY, "false");
}
@VisibleForTesting
diff --git a/tests/robotests/src/com/android/settings/development/BluetoothInbandRingingPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/BluetoothInbandRingingPreferenceControllerTest.java
index 4074e25..d0552ec 100644
--- a/tests/robotests/src/com/android/settings/development/BluetoothInbandRingingPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/development/BluetoothInbandRingingPreferenceControllerTest.java
@@ -18,7 +18,7 @@
import static com.android.settings.development.BluetoothInbandRingingPreferenceController
- .BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY;
+ .BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY;
import static com.google.common.truth.Truth.assertThat;
@@ -84,7 +84,7 @@
mController.onPreferenceChange(mPreference, true /* new value */);
final boolean mode = SettingsShadowSystemProperties.getBoolean(
- BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY, false /* default */);
+ BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY, false /* default */);
assertThat(mode).isTrue();
}
@@ -94,14 +94,14 @@
mController.onPreferenceChange(mPreference, false /* new value */);
final boolean mode = SettingsShadowSystemProperties.getBoolean(
- BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY, false /* default */);
+ BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY, false /* default */);
assertThat(mode).isFalse();
}
@Test
public void updateState_settingEnabled_preferenceShouldBeChecked() {
- SettingsShadowSystemProperties.set(BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY,
+ SettingsShadowSystemProperties.set(BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY,
Boolean.toString(true));
mController.updateState(mPreference);
@@ -110,7 +110,7 @@
@Test
public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
- SettingsShadowSystemProperties.set(BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY,
+ SettingsShadowSystemProperties.set(BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY,
Boolean.toString(false));
mController.updateState(mPreference);
@@ -122,11 +122,11 @@
mController.onDeveloperOptionsDisabled();
final boolean mode = SettingsShadowSystemProperties.getBoolean(
- BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY, false /* default */);
+ BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY, false /* default */);
- assertThat(mode).isTrue();
+ assertThat(mode).isFalse();
verify(mPreference).setEnabled(false);
- verify(mPreference).setChecked(true);
+ verify(mPreference).setChecked(false);
}
@Test