Create 'See All Networks' Preference to hide additional networks.

Bug: 34719725
Test: manual inspection, tests to be added in b/35322551
Change-Id: I1a5a08ca4c53db71b4c0c3d4c2942da65faa67d2
This commit is contained in:
Stephen Chen
2017-02-09 16:17:28 -08:00
parent 65af66f0d8
commit 2e966c642f
2 changed files with 29 additions and 7 deletions

View File

@@ -1579,6 +1579,8 @@
<string name="wifi_starting">Turning Wi\u2011Fi on\u2026</string> <string name="wifi_starting">Turning Wi\u2011Fi on\u2026</string>
<!-- Summary text when turning Wi-Fi or bluetooth off --> <!-- Summary text when turning Wi-Fi or bluetooth off -->
<string name="wifi_stopping">Turning off Wi\u2011Fi\u2026</string> <string name="wifi_stopping">Turning off Wi\u2011Fi\u2026</string>
<!-- Title of Button to show all Wi-Fi networks in the picker. [CHAR LIMIT=30] -->
<string name="wifi_see_all_networks_button_title">See all networks</string>
<!-- Summary text when Wi-Fi or bluetooth has error --> <!-- Summary text when Wi-Fi or bluetooth has error -->
<string name="wifi_error">Error</string> <string name="wifi_error">Error</string>
<!-- Summary text when wifi SoftAP started failed due to no legal usable channel allowed in this region by regulatory --> <!-- Summary text when wifi SoftAP started failed due to no legal usable channel allowed in this region by regulatory -->

View File

@@ -140,6 +140,10 @@ public class WifiSettings extends RestrictedSettingsFragment
// should Next button only be enabled when we have a connection? // should Next button only be enabled when we have a connection?
private boolean mEnableNextOnConnection; private boolean mEnableNextOnConnection;
// should see all networks instead of collapsing networks and showing mSeeAllNetworksPreference.
private boolean mSeeAllNetworks;
private static final int NETWORKS_TO_INITIALLY_SHOW = 5;
// Save the dialog details // Save the dialog details
private int mDialogMode; private int mDialogMode;
private AccessPoint mDlgAccessPoint; private AccessPoint mDlgAccessPoint;
@@ -157,6 +161,7 @@ public class WifiSettings extends RestrictedSettingsFragment
private PreferenceCategory mAccessPointsPreferenceCategory; private PreferenceCategory mAccessPointsPreferenceCategory;
private PreferenceCategory mAdditionalSettingsPreferenceCategory; private PreferenceCategory mAdditionalSettingsPreferenceCategory;
private Preference mAddPreference; private Preference mAddPreference;
private Preference mSeeAllNetworksPreference;
private Preference mConfigureWifiSettingsPreference; private Preference mConfigureWifiSettingsPreference;
private Preference mSavedNetworksPreference; private Preference mSavedNetworksPreference;
private LinkablePreference mStatusMessagePreference; private LinkablePreference mStatusMessagePreference;
@@ -200,6 +205,10 @@ public class WifiSettings extends RestrictedSettingsFragment
mAddPreference = new Preference(prefContext); mAddPreference = new Preference(prefContext);
mAddPreference.setIcon(R.drawable.ic_menu_add_inset); mAddPreference.setIcon(R.drawable.ic_menu_add_inset);
mAddPreference.setTitle(R.string.wifi_add_network); mAddPreference.setTitle(R.string.wifi_add_network);
mSeeAllNetworksPreference = new Preference(prefContext);
mSeeAllNetworksPreference.setIcon(R.drawable.ic_arrow_down_24dp);
mSeeAllNetworksPreference.setTitle(R.string.wifi_see_all_networks_button_title);
mSeeAllNetworks = false;
mStatusMessagePreference = new LinkablePreference(prefContext); mStatusMessagePreference = new LinkablePreference(prefContext);
mUserBadgeCache = new AccessPointPreference.UserBadgeCache(getPackageManager()); mUserBadgeCache = new AccessPointPreference.UserBadgeCache(getPackageManager());
@@ -524,6 +533,9 @@ public class WifiSettings extends RestrictedSettingsFragment
} }
} else if (preference == mAddPreference) { } else if (preference == mAddPreference) {
onAddNetworkPressed(); onAddNetworkPressed();
} else if (preference == mSeeAllNetworksPreference) {
mSeeAllNetworks = true;
onAccessPointsChanged();
} else { } else {
return super.onPreferenceTreeClick(preference); return super.onPreferenceTreeClick(preference);
} }
@@ -635,8 +647,12 @@ public class WifiSettings extends RestrictedSettingsFragment
cacheRemoveAllPrefs(mAccessPointsPreferenceCategory); cacheRemoveAllPrefs(mAccessPointsPreferenceCategory);
int index = configureConnectedAccessPointPreferenceCategory(accessPoints) ? 1 : 0; int index = configureConnectedAccessPointPreferenceCategory(accessPoints) ? 1 : 0;
boolean fewerNetworksThanLimit =
accessPoints.size() <= index + NETWORKS_TO_INITIALLY_SHOW;
int numAccessPointsToShow = mSeeAllNetworks || fewerNetworksThanLimit
? accessPoints.size() : index + NETWORKS_TO_INITIALLY_SHOW;
for (; index < accessPoints.size(); index++) { for (; index < numAccessPointsToShow; index++) {
AccessPoint accessPoint = accessPoints.get(index); AccessPoint accessPoint = accessPoints.get(index);
// Ignore access points that are out of range. // Ignore access points that are out of range.
if (accessPoint.getLevel() != -1) { if (accessPoint.getLevel() != -1) {
@@ -682,15 +698,19 @@ public class WifiSettings extends RestrictedSettingsFragment
pref.setOrder(index++); pref.setOrder(index++);
pref.setKey(PREF_KEY_EMPTY_WIFI_LIST); pref.setKey(PREF_KEY_EMPTY_WIFI_LIST);
mAccessPointsPreferenceCategory.addPreference(pref); mAccessPointsPreferenceCategory.addPreference(pref);
mAddPreference.setOrder(index++);
mAccessPointsPreferenceCategory.addPreference(mAddPreference);
setConfigureWifiSettingsVisibility();
} else { } else {
mAddPreference.setOrder(index++);
mAccessPointsPreferenceCategory.addPreference(mAddPreference);
setConfigureWifiSettingsVisibility();
setProgressBarVisible(false); setProgressBarVisible(false);
} }
if (mSeeAllNetworks || fewerNetworksThanLimit) {
mAccessPointsPreferenceCategory.removePreference(mSeeAllNetworksPreference);
mAddPreference.setOrder(index);
mAccessPointsPreferenceCategory.addPreference(mAddPreference);
} else {
mAccessPointsPreferenceCategory.removePreference(mAddPreference);
mSeeAllNetworksPreference.setOrder(index);
mAccessPointsPreferenceCategory.addPreference(mSeeAllNetworksPreference);
}
setConfigureWifiSettingsVisibility();
if (mScanMenuItem != null) { if (mScanMenuItem != null) {
mScanMenuItem.setEnabled(true); mScanMenuItem.setEnabled(true);
} }