Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3dc78376 authored by Weng Su's avatar Weng Su
Browse files

Remove Instant Hotspot from Settings search

- If Instant Hotspot is not enabled then remove it from Settings search

Bug: 339159245
Flag: None
Test: Manual testing
atest -c WifiTetherSettingsTest

Change-Id: I0b1d34c1130b17bfc0f3f0451a10c8aba265733c
parent ce57ffdb
Loading
Loading
Loading
Loading
+9 −1
Original line number Original line Diff line number Diff line
@@ -43,6 +43,7 @@ import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.widget.SettingsMainSwitchBar;
import com.android.settings.widget.SettingsMainSwitchBar;
import com.android.settings.wifi.WifiUtils;
import com.android.settings.wifi.WifiUtils;
import com.android.settings.wifi.repository.SharedConnectivityRepository;
import com.android.settingslib.TetherUtil;
import com.android.settingslib.TetherUtil;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.search.SearchIndexable;
@@ -346,16 +347,20 @@ public class WifiTetherSettings extends RestrictedDashboardFragment
    static class SearchIndexProvider extends BaseSearchIndexProvider {
    static class SearchIndexProvider extends BaseSearchIndexProvider {


        private final WifiRestriction mWifiRestriction;
        private final WifiRestriction mWifiRestriction;
        private final boolean mIsInstantHotspotEnabled;


        SearchIndexProvider(int xmlRes) {
        SearchIndexProvider(int xmlRes) {
            super(xmlRes);
            super(xmlRes);
            mWifiRestriction = new WifiRestriction();
            mWifiRestriction = new WifiRestriction();
            mIsInstantHotspotEnabled = SharedConnectivityRepository.isDeviceConfigEnabled();
        }
        }


        @VisibleForTesting
        @VisibleForTesting
        SearchIndexProvider(int xmlRes, WifiRestriction wifiRestriction) {
        SearchIndexProvider(int xmlRes, WifiRestriction wifiRestriction,
                boolean isInstantHotspotEnabled) {
            super(xmlRes);
            super(xmlRes);
            mWifiRestriction = wifiRestriction;
            mWifiRestriction = wifiRestriction;
            mIsInstantHotspotEnabled = isInstantHotspotEnabled;
        }
        }


        @Override
        @Override
@@ -369,6 +374,9 @@ public class WifiTetherSettings extends RestrictedDashboardFragment
                keys.add(KEY_WIFI_TETHER_NETWORK_PASSWORD);
                keys.add(KEY_WIFI_TETHER_NETWORK_PASSWORD);
                keys.add(KEY_WIFI_TETHER_AUTO_OFF);
                keys.add(KEY_WIFI_TETHER_AUTO_OFF);
                keys.add(KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
                keys.add(KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
                keys.add(KEY_INSTANT_HOTSPOT);
            } else if (!mIsInstantHotspotEnabled) {
                keys.add(KEY_INSTANT_HOTSPOT);
            }
            }


            // Remove duplicate
            // Remove duplicate
+29 −4
Original line number Original line Diff line number Diff line
@@ -266,7 +266,8 @@ public class WifiTetherSettingsTest {
        when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(true);
        when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(true);
        when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(true);
        when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(true);
        WifiTetherSettings.SearchIndexProvider searchIndexProvider =
        WifiTetherSettings.SearchIndexProvider searchIndexProvider =
                new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction);
                new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction,
                        true /* isInstantHotspotEnabled */);


        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
        final List<String> 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_NETWORK_PASSWORD);
        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
        assertThat(keys).doesNotContain(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
    }
    }


    @Test
    @Test
@@ -282,7 +284,8 @@ public class WifiTetherSettingsTest {
        when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(false);
        when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(false);
        when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(true);
        when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(true);
        WifiTetherSettings.SearchIndexProvider searchIndexProvider =
        WifiTetherSettings.SearchIndexProvider searchIndexProvider =
                new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction);
                new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction,
                        true /* isInstantHotspotEnabled */);


        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
        final List<String> 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_NETWORK_PASSWORD);
        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_AUTO_OFF);
        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
        assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
    }
    }


    @Test
    @Test
@@ -298,7 +302,8 @@ public class WifiTetherSettingsTest {
        when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(true);
        when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(true);
        when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(false);
        when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(false);
        WifiTetherSettings.SearchIndexProvider searchIndexProvider =
        WifiTetherSettings.SearchIndexProvider searchIndexProvider =
                new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction);
                new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction,
                        true /* isInstantHotspotEnabled */);


        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);


@@ -307,6 +312,7 @@ public class WifiTetherSettingsTest {
        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_NETWORK_PASSWORD);
        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_AUTO_OFF);
        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
        assertThat(keys).contains(WifiTetherSettings.KEY_INSTANT_HOTSPOT);
    }
    }


    @Test
    @Test
@@ -314,7 +320,8 @@ public class WifiTetherSettingsTest {
        when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(false);
        when(mWifiRestriction.isTetherAvailable(mContext)).thenReturn(false);
        when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(false);
        when(mWifiRestriction.isHotspotAvailable(mContext)).thenReturn(false);
        WifiTetherSettings.SearchIndexProvider searchIndexProvider =
        WifiTetherSettings.SearchIndexProvider searchIndexProvider =
                new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction);
                new WifiTetherSettings.SearchIndexProvider(XML_RES, mWifiRestriction,
                        true /* isInstantHotspotEnabled */);


        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);
        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);


@@ -325,6 +332,24 @@ public class WifiTetherSettingsTest {
        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
        assertThat(keys).contains(WifiTetherSettings.KEY_WIFI_TETHER_MAXIMIZE_COMPATIBILITY);
    }
    }


    @Test
    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,
                        false /* isInstantHotspotEnabled */);

        final List<String> keys = searchIndexProvider.getNonIndexableKeys(mContext);

        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
    @Test
    public void isPageSearchEnabled_allReady_returnTrue() {
    public void isPageSearchEnabled_allReady_returnTrue() {
        setCanShowWifiHotspotCached(true);
        setCanShowWifiHotspotCached(true);