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
This commit is contained in:
Jack He
2017-12-07 15:09:07 -08:00
parent 2d43a1ed84
commit 1eca8141bf
4 changed files with 27 additions and 23 deletions

View File

@@ -396,6 +396,11 @@
<!-- Summary for bluetooth item in connection detail page --> <!-- Summary for bluetooth item in connection detail page -->
<string name="bluetooth_pref_summary">Allow device to pair and connect to bluetooth devices</string> <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">Dont play custom phone ringtones on Bluetooth headsets</string>
<!-- Title for connected device group [CHAR LIMIT=none]--> <!-- Title for connected device group [CHAR LIMIT=none]-->
<string name="connected_device_connected_title">Currently connected</string> <string name="connected_device_connected_title">Currently connected</string>
<!-- Title for connected device group [CHAR LIMIT=none]--> <!-- Title for connected device group [CHAR LIMIT=none]-->

View File

@@ -240,9 +240,9 @@
android:summary="@string/bluetooth_disable_absolute_volume_summary"/> android:summary="@string/bluetooth_disable_absolute_volume_summary"/>
<SwitchPreference <SwitchPreference
android:key="bluetooth_enable_inband_ringing" android:key="bluetooth_disable_inband_ringing"
android:title="@string/bluetooth_enable_inband_ringing" android:title="@string/bluetooth_disable_inband_ringing"
android:summary="@string/bluetooth_enable_inband_ringing_summary"/> android:summary="@string/bluetooth_disable_inband_ringing_summary"/>
<ListPreference <ListPreference
android:key="bluetooth_select_avrcp_version" android:key="bluetooth_select_avrcp_version"

View File

@@ -31,11 +31,11 @@ public class BluetoothInbandRingingPreferenceController extends
DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener, DeveloperOptionsPreferenceController implements Preference.OnPreferenceChangeListener,
PreferenceControllerMixin { PreferenceControllerMixin {
private static final String BLUETOOTH_ENABLE_INBAND_RINGING_KEY = private static final String BLUETOOTH_DISABLE_INBAND_RINGING_KEY =
"bluetooth_enable_inband_ringing"; "bluetooth_disable_inband_ringing";
@VisibleForTesting @VisibleForTesting
static final String BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY = static final String BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY =
"persist.bluetooth.enableinbandringing"; "persist.bluetooth.disableinbandringing";
private SwitchPreference mPreference; private SwitchPreference mPreference;
@@ -50,7 +50,7 @@ public class BluetoothInbandRingingPreferenceController extends
@Override @Override
public String getPreferenceKey() { public String getPreferenceKey() {
return BLUETOOTH_ENABLE_INBAND_RINGING_KEY; return BLUETOOTH_DISABLE_INBAND_RINGING_KEY;
} }
@Override @Override
@@ -62,16 +62,16 @@ public class BluetoothInbandRingingPreferenceController extends
@Override @Override
public boolean onPreferenceChange(Preference preference, Object newValue) { public boolean onPreferenceChange(Preference preference, Object newValue) {
final boolean isEnabled = (Boolean) newValue; final boolean isChecked = (Boolean) newValue;
SystemProperties.set(BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY, SystemProperties.set(BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY,
isEnabled ? "true" : "false"); isChecked ? "true" : "false");
return true; return true;
} }
@Override @Override
public void updateState(Preference preference) { public void updateState(Preference preference) {
final boolean isEnabled = SystemProperties.getBoolean( final boolean isEnabled = SystemProperties.getBoolean(
BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY, true /* default */); BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY, false /* default */);
mPreference.setChecked(isEnabled); mPreference.setChecked(isEnabled);
} }
@@ -83,9 +83,8 @@ public class BluetoothInbandRingingPreferenceController extends
@Override @Override
protected void onDeveloperOptionsSwitchDisabled() { protected void onDeveloperOptionsSwitchDisabled() {
mPreference.setEnabled(false); mPreference.setEnabled(false);
// the default setting for this preference is the enabled state mPreference.setChecked(false);
mPreference.setChecked(true); SystemProperties.set(BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY, "false");
SystemProperties.set(BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY, "true");
} }
@VisibleForTesting @VisibleForTesting

View File

@@ -18,7 +18,7 @@ package com.android.settings.development;
import static com.android.settings.development.BluetoothInbandRingingPreferenceController 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; import static com.google.common.truth.Truth.assertThat;
@@ -84,7 +84,7 @@ public class BluetoothInbandRingingPreferenceControllerTest {
mController.onPreferenceChange(mPreference, true /* new value */); mController.onPreferenceChange(mPreference, true /* new value */);
final boolean mode = SettingsShadowSystemProperties.getBoolean( final boolean mode = SettingsShadowSystemProperties.getBoolean(
BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY, false /* default */); BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY, false /* default */);
assertThat(mode).isTrue(); assertThat(mode).isTrue();
} }
@@ -94,14 +94,14 @@ public class BluetoothInbandRingingPreferenceControllerTest {
mController.onPreferenceChange(mPreference, false /* new value */); mController.onPreferenceChange(mPreference, false /* new value */);
final boolean mode = SettingsShadowSystemProperties.getBoolean( final boolean mode = SettingsShadowSystemProperties.getBoolean(
BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY, false /* default */); BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY, false /* default */);
assertThat(mode).isFalse(); assertThat(mode).isFalse();
} }
@Test @Test
public void updateState_settingEnabled_preferenceShouldBeChecked() { public void updateState_settingEnabled_preferenceShouldBeChecked() {
SettingsShadowSystemProperties.set(BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY, SettingsShadowSystemProperties.set(BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY,
Boolean.toString(true)); Boolean.toString(true));
mController.updateState(mPreference); mController.updateState(mPreference);
@@ -110,7 +110,7 @@ public class BluetoothInbandRingingPreferenceControllerTest {
@Test @Test
public void updateState_settingDisabled_preferenceShouldNotBeChecked() { public void updateState_settingDisabled_preferenceShouldNotBeChecked() {
SettingsShadowSystemProperties.set(BLUETOOTH_ENABLE_INBAND_RINGING_PROPERTY, SettingsShadowSystemProperties.set(BLUETOOTH_DISABLE_INBAND_RINGING_PROPERTY,
Boolean.toString(false)); Boolean.toString(false));
mController.updateState(mPreference); mController.updateState(mPreference);
@@ -122,11 +122,11 @@ public class BluetoothInbandRingingPreferenceControllerTest {
mController.onDeveloperOptionsDisabled(); mController.onDeveloperOptionsDisabled();
final boolean mode = SettingsShadowSystemProperties.getBoolean( 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).setEnabled(false);
verify(mPreference).setChecked(true); verify(mPreference).setChecked(false);
} }
@Test @Test