OSDN Git Service

Bluetooth: Use "Disable" in-band ringing instead of "Enable"
authorJack He <siyuanh@google.com>
Thu, 7 Dec 2017 23:09:07 +0000 (15:09 -0800)
committerJack He <siyuanh@google.com>
Thu, 4 Jan 2018 23:48:21 +0000 (15:48 -0800)
* 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

res/values/strings.xml
res/xml/development_settings.xml
src/com/android/settings/development/BluetoothInbandRingingPreferenceController.java
tests/robotests/src/com/android/settings/development/BluetoothInbandRingingPreferenceControllerTest.java

index 3dc342b..be683d2 100644 (file)
     <!-- 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]-->
index 60efcab..18aeeef 100644 (file)
             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"
index db5a881..809db19 100644 (file)
@@ -31,11 +31,11 @@ public class BluetoothInbandRingingPreferenceController extends
         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 @@ public class BluetoothInbandRingingPreferenceController extends
 
     @Override
     public String getPreferenceKey() {
-        return BLUETOOTH_ENABLE_INBAND_RINGING_KEY;
+        return BLUETOOTH_DISABLE_INBAND_RINGING_KEY;
     }
 
     @Override
@@ -62,16 +62,16 @@ public class BluetoothInbandRingingPreferenceController extends
 
     @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 @@ public class BluetoothInbandRingingPreferenceController extends
     @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
index 4074e25..d0552ec 100644 (file)
@@ -18,7 +18,7 @@ package com.android.settings.development;
 
 
 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 @@ public class BluetoothInbandRingingPreferenceControllerTest {
         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 @@ public class BluetoothInbandRingingPreferenceControllerTest {
         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 @@ public class BluetoothInbandRingingPreferenceControllerTest {
 
     @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 @@ public class BluetoothInbandRingingPreferenceControllerTest {
         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