From 0ccc849de7b0ce4c208434a60fb231f749044191 Mon Sep 17 00:00:00 2001 From: Zhen Zhang Date: Fri, 17 Jan 2020 15:23:40 -0800 Subject: [PATCH] Add config value to switch between Tether Settings UIs. Adding this config value to make it easy to switch to developing Tethering settings UI. Also, using this config value to make sure that preferences from new AllInOneTetherSettings screen won't show up in the search results. Bug: 147915366 Test: make RunSettingsRoboTests ROBOTEST_FILTER=CodeInspectionTest Test: make RunSettingsRoboTests ROBOTEST_FILTER=TetherSettingsTest Test: make RunSettingsRoboTests ROBOTEST_FILTER=TetehrPreferenceControllerTest Test: make RunSettingsRoboTests ROBOTEST_FILTER=WifiTetherSettingsTest Change-Id: I8c88816a8f2b40fc219cae8d0d442454c5270b2b --- res/values/config.xml | 3 +++ .../android/settings/AllInOneTetherSettings.java | 8 +++++++- src/com/android/settings/TetherSettings.java | 6 ++++++ .../network/TetherPreferenceController.java | 4 ++++ .../settings/wifi/tether/WifiTetherSettings.java | 6 ++++++ .../settings/AllInOneTetherSettingsTest.java | 15 +++++++++------ 6 files changed, 35 insertions(+), 7 deletions(-) diff --git a/res/values/config.xml b/res/values/config.xml index fc2ca1f89e1..86be2cb91a4 100755 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -434,4 +434,7 @@ + + + false diff --git a/src/com/android/settings/AllInOneTetherSettings.java b/src/com/android/settings/AllInOneTetherSettings.java index fbf0280239e..1c7ea1d5ce1 100644 --- a/src/com/android/settings/AllInOneTetherSettings.java +++ b/src/com/android/settings/AllInOneTetherSettings.java @@ -201,7 +201,7 @@ public final class AllInOneTetherSettings extends RestrictedDashboardFragment // Assume we are in a SettingsActivity. This is only safe because we currently use // SettingsActivity as base for all preference fragments. final SettingsActivity activity = (SettingsActivity) getActivity(); - BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); + final BluetoothAdapter adapter = BluetoothAdapter.getDefaultAdapter(); if (adapter != null) { adapter.getProfileProxy(activity.getApplicationContext(), mProfileServiceListener, BluetoothProfile.PAN); @@ -404,6 +404,12 @@ public final class AllInOneTetherSettings extends RestrictedDashboardFragment return keys; } + @Override + protected boolean isPageSearchEnabled(Context context) { + return context.getResources().getBoolean( + R.bool.config_show_all_in_one_tether_settings); + } + @Override public List createPreferenceControllers( Context context) { diff --git a/src/com/android/settings/TetherSettings.java b/src/com/android/settings/TetherSettings.java index c5407c583f3..da86cbf8b78 100644 --- a/src/com/android/settings/TetherSettings.java +++ b/src/com/android/settings/TetherSettings.java @@ -450,6 +450,12 @@ public class TetherSettings extends RestrictedSettingsFragment return Arrays.asList(sir); } + @Override + protected boolean isPageSearchEnabled(Context context) { + return !context.getResources().getBoolean( + R.bool.config_show_all_in_one_tether_settings); + } + @Override public List getNonIndexableKeys(Context context) { final List keys = super.getNonIndexableKeys(context); diff --git a/src/com/android/settings/network/TetherPreferenceController.java b/src/com/android/settings/network/TetherPreferenceController.java index 0d4a6a6189c..5e526924aac 100644 --- a/src/com/android/settings/network/TetherPreferenceController.java +++ b/src/com/android/settings/network/TetherPreferenceController.java @@ -109,6 +109,10 @@ public class TetherPreferenceController extends AbstractPreferenceController imp // Grey out if provisioning is not available. mPreference.setEnabled(!TetherSettings.isProvisioningNeededButUnavailable(mContext)); + + if (mContext.getResources().getBoolean(R.bool.config_show_all_in_one_tether_settings)) { + mPreference.setFragment("com.android.settings.AllInOneTetherSettings"); + } } } diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java index 3c4a0012ddb..46655151873 100644 --- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java +++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java @@ -257,6 +257,12 @@ public class WifiTetherSettings extends RestrictedDashboardFragment return keys; } + @Override + protected boolean isPageSearchEnabled(Context context) { + return !context.getResources().getBoolean( + R.bool.config_show_all_in_one_tether_settings); + } + @Override public List createPreferenceControllers( Context context) { diff --git a/tests/robotests/src/com/android/settings/AllInOneTetherSettingsTest.java b/tests/robotests/src/com/android/settings/AllInOneTetherSettingsTest.java index 51c856a0193..37a3474b4f4 100644 --- a/tests/robotests/src/com/android/settings/AllInOneTetherSettingsTest.java +++ b/tests/robotests/src/com/android/settings/AllInOneTetherSettingsTest.java @@ -69,18 +69,21 @@ public class AllInOneTetherSettingsTest { } @Test - public void getNonIndexableKeys_tetherAvailable_keysNotReturned() { + public void getNonIndexableKeys_tetherAvailable_keysReturned() { // To let TetherUtil.isTetherAvailable return true, select one of the combinations setupIsTetherAvailable(true); final List niks = AllInOneTetherSettings.SEARCH_INDEX_DATA_PROVIDER.getNonIndexableKeys(mContext); - assertThat(niks).doesNotContain(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME); - assertThat(niks).doesNotContain(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD); - assertThat(niks).doesNotContain(AllInOneTetherSettings.KEY_WIFI_TETHER_AUTO_OFF); - assertThat(niks).doesNotContain(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_AP_BAND); - assertThat(niks).doesNotContain(AllInOneTetherSettings.KEY_TETHER_PREFS_SCREEN); + // TODO(b/147675042) Should revert these assertions, after switching to new UI. + // Because of the config check, we are not indexing these keys. Once we enable the config + // these assert would also need to change. + assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME); + assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD); + assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_AUTO_OFF); + assertThat(niks).contains(AllInOneTetherSettings.KEY_WIFI_TETHER_NETWORK_AP_BAND); + assertThat(niks).contains(AllInOneTetherSettings.KEY_TETHER_PREFS_SCREEN); } @Test