Define "Add network" preference in XML.

Move the definition from Java to XML, so that SearchIndexProvider can
include it in the getXmlResourcesToIndex().
Also update getNonIndexableKeys() to return the corresponding key when
the preference is hidden.

If the Internet settings are restricted, "Add network" still appears on
search. When clicked, it opens the Internet settings page in restricted
mode, so that users can know that the settings are restricted.

Bug: 224421762
Fix: 224421762
Test: atest SettingsRoboTests:NetworkProviderSettingsTest
Change-Id: Ie9ea58070843a390844b461ce766f0ce29e64fab
This commit is contained in:
Kohsuke Yatoh
2023-08-03 08:34:58 +00:00
parent 07e0e5c86f
commit bdfab1de26
4 changed files with 44 additions and 3 deletions

View File

@@ -138,6 +138,8 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
@VisibleForTesting
static final String PREF_KEY_FIRST_ACCESS_POINTS = "first_access_points";
private static final String PREF_KEY_ACCESS_POINTS = "access_points";
@VisibleForTesting
static final String PREF_KEY_ADD_WIFI_NETWORK = "add_wifi_network";
private static final String PREF_KEY_CONFIGURE_NETWORK_SETTINGS = "configure_network_settings";
private static final String PREF_KEY_SAVED_NETWORKS = "saved_networks";
@VisibleForTesting
@@ -325,7 +327,10 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
mWifiEntryPreferenceCategory = findPreference(PREF_KEY_ACCESS_POINTS);
mConfigureWifiSettingsPreference = findPreference(PREF_KEY_CONFIGURE_NETWORK_SETTINGS);
mSavedNetworksPreference = findPreference(PREF_KEY_SAVED_NETWORKS);
mAddWifiNetworkPreference = new AddWifiNetworkPreference(getPrefContext());
mAddWifiNetworkPreference = findPreference(PREF_KEY_ADD_WIFI_NETWORK);
// Hide mAddWifiNetworkPreference by default. updateWifiEntryPreferences() will add it back
// later when appropriate.
mWifiEntryPreferenceCategory.removePreference(mAddWifiNetworkPreference);
mDataUsagePreference = findPreference(PREF_KEY_DATA_USAGE);
mDataUsagePreference.setVisible(DataUsageUtils.hasWifiRadio(getContext()));
mDataUsagePreference.setTemplate(new NetworkTemplate.Builder(NetworkTemplate.MATCH_WIFI)
@@ -1312,6 +1317,9 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
if (WifiSavedConfigUtils.getAllConfigsCount(context, wifiManager) == 0) {
keys.add(PREF_KEY_SAVED_NETWORKS);
}
if (wifiManager.getWifiState() != WifiManager.WIFI_STATE_ENABLED) {
keys.add(PREF_KEY_ADD_WIFI_NETWORK);
}
if (!DataUsageUtils.hasWifiRadio(context)) {
keys.add(PREF_KEY_DATA_USAGE);