diff --git a/src/com/android/settings/wifi/tether/WifiTetherSettings.java b/src/com/android/settings/wifi/tether/WifiTetherSettings.java index bad29eb79da..74671b5f4af 100644 --- a/src/com/android/settings/wifi/tether/WifiTetherSettings.java +++ b/src/com/android/settings/wifi/tether/WifiTetherSettings.java @@ -43,6 +43,7 @@ import com.android.settings.overlay.FeatureFactory; import com.android.settings.search.BaseSearchIndexProvider; import com.android.settings.widget.SettingsMainSwitchBar; import com.android.settings.wifi.WifiUtils; +import com.android.settings.wifi.repository.SharedConnectivityRepository; import com.android.settingslib.TetherUtil; import com.android.settingslib.core.AbstractPreferenceController; import com.android.settingslib.search.SearchIndexable; @@ -346,16 +347,20 @@ public class WifiTetherSettings extends RestrictedDashboardFragment static class SearchIndexProvider extends BaseSearchIndexProvider { private final WifiRestriction mWifiRestriction; + private final boolean mIsInstantHotspotEnabled; SearchIndexProvider(int xmlRes) { super(xmlRes); mWifiRestriction = new WifiRestriction(); + mIsInstantHotspotEnabled = SharedConnectivityRepository.isDeviceConfigEnabled(); } @VisibleForTesting - SearchIndexProvider(int xmlRes, WifiRestriction wifiRestriction) { + SearchIndexProvider(int xmlRes, WifiRestriction wifiRestriction, + boolean isInstantHotspotEnabled) { super(xmlRes); mWifiRestriction = wifiRestriction; + mIsInstantHotspotEnabled = isInstantHotspotEnabled; } @Override @@ -369,6 +374,9 @@ public class WifiTetherSettings extends RestrictedDashboardFragment keys.add(KEY_WIFI_TETHER_NETWORK_PASSWORD); keys.add(KEY_WIFI_TETHER_AUTO_OFF); keys.add(KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY); + keys.add(KEY_INSTANT_HOTSPOT); + } else if (!mIsInstantHotspotEnabled) { + keys.add(KEY_INSTANT_HOTSPOT); } // Remove duplicate diff --git a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java index 28fb8b37721..299d545c49b 100644 --- a/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java +++ b/tests/robotests/src/com/android/settings/wifi/tether/WifiTetherSettingsTest.java @@ -266,7 +266,8 @@ public class WifiTetherSettingsTest { when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(true); when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(true); WifiTetherSettings.SearchIndexProvider searchIndexProvider = - new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction); + new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction, + true /* isInstantHotspotEnabled */); final List keys = searchIndexProvider.getNonIndexableKeys(mContext); @@ -275,6 +276,7 @@ public class WifiTetherSettingsTest { assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD); assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF); assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY); + assertThat(keys).doesNotContain(WifiTetherSettings.KEY_INSTANT_HOTSPOT); } @Test @@ -282,7 +284,8 @@ public class WifiTetherSettingsTest { when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(false); when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(true); WifiTetherSettings.SearchIndexProvider searchIndexProvider = - new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction); + new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction, + true /* isInstantHotspotEnabled */); final List keys = searchIndexProvider.getNonIndexableKeys(mContext); @@ -291,6 +294,7 @@ public class WifiTetherSettingsTest { assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD); assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF); assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY); + assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT); } @Test @@ -298,7 +302,26 @@ public class WifiTetherSettingsTest { when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(true); when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(false); WifiTetherSettings.SearchIndexProvider searchIndexProvider = - new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction); + new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction, + true /* isInstantHotspotEnabled */); + + final List keys = searchIndexProvider.getNonIndexableKeys(mContext); + + assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME); + assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY); + assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD); + assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF); + assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY); + assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT); + } + + @Test + public void getNonIndexableKeys_tetherAndHotspotNotAvailable_keysReturned() { + when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(false); + when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(false); + WifiTetherSettings.SearchIndexProvider searchIndexProvider = + new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction, + true /* isInstantHotspotEnabled */); final List keys = searchIndexProvider.getNonIndexableKeys(mContext); @@ -310,19 +333,21 @@ public class WifiTetherSettingsTest { } @Test - public void getNonIndexableKeys_tetherAndHotspotNotAvailable_keysReturned() { - when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(false); - when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(false); + public void getNonIndexableKeys_instantHotspotNotAvailableOnly_keysContainInstantHotspotOnly() { + when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(true); + when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(true); WifiTetherSettings.SearchIndexProvider searchIndexProvider = - new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction); + new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction, + false /* isInstantHotspotEnabled */); final List keys = searchIndexProvider.getNonIndexableKeys(mContext); - assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME); - assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY); - assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD); - assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF); - assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY); + assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_NAME); + assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_SECURITY); + assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD); + assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF); + assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY); + assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT); } @Test