From fd3360d28b88fb2056b8d3a277415a814746ebd1 Mon Sep 17 00:00:00 2001 From: Arc Wang Date: Mon, 30 Mar 2020 15:47:57 +0800 Subject: [PATCH] [Wi-Fi] Index Wi-Fi preferences. This is a WifiTracker2 version of partial part of ag/9980423 - Disable the "Saved network" if the access points is empty. - Disable the "Wifi data usage" if there is no wifi radio. Bug: 146823365 Test: manual Search 'Saved networks' when there is a saved Wi-Fi network and when there is no saved Wi-Fi network. Search 'data usage' on the device which supports Wi-Fi and on the device which does not supports Wi-Fi. Change-Id: If46e65585f1b272401666f78fd5e3a4cf49bef6e --- .../android/settings/wifi/WifiSettings.java | 4 +--- .../android/settings/wifi/WifiSettings2.java | 18 +++++++++++++++++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index bba90016bb2..581f202b170 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -1304,9 +1304,7 @@ public class WifiSettings extends RestrictedSettingsFragment final List keys = super.getNonIndexableKeys(context); final WifiManager wifiManager = context.getSystemService(WifiManager.class); - final List accessPoints = WifiSavedConfigUtils.getAllConfigs( - context, wifiManager); - if (accessPoints == null || accessPoints.size() <= 0) { + if (WifiSavedConfigUtils.getAllConfigsCount(context, wifiManager) == 0) { keys.add(PREF_KEY_SAVED_NETWORKS); } diff --git a/src/com/android/settings/wifi/WifiSettings2.java b/src/com/android/settings/wifi/WifiSettings2.java index 13ccdc3695b..5dec521b818 100644 --- a/src/com/android/settings/wifi/WifiSettings2.java +++ b/src/com/android/settings/wifi/WifiSettings2.java @@ -76,6 +76,7 @@ import com.android.settingslib.RestrictedLockUtilsInternal; import com.android.settingslib.search.Indexable; import com.android.settingslib.search.SearchIndexable; import com.android.settingslib.wifi.LongPressWifiEntryPreference; +import com.android.settingslib.wifi.WifiSavedConfigUtils; import com.android.wifitrackerlib.WifiEntry; import com.android.wifitrackerlib.WifiEntry.ConnectCallback; import com.android.wifitrackerlib.WifiPickerTracker; @@ -1008,7 +1009,22 @@ public class WifiSettings2 extends RestrictedSettingsFragment }; public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER = - new BaseSearchIndexProvider(R.xml.wifi_settings2); + new BaseSearchIndexProvider(R.xml.wifi_settings2) { + @Override + public List getNonIndexableKeys(Context context) { + final List keys = super.getNonIndexableKeys(context); + + final WifiManager wifiManager = context.getSystemService(WifiManager.class); + if (WifiSavedConfigUtils.getAllConfigsCount(context, wifiManager) == 0) { + keys.add(PREF_KEY_SAVED_NETWORKS); + } + + if (!DataUsageUtils.hasWifiRadio(context)) { + keys.add(PREF_KEY_DATA_USAGE); + } + return keys; + } + }; private class WifiEntryConnectCallback implements ConnectCallback { final WifiEntry mConnectWifiEntry;