User WifiPickerTracker API for saved network preference text
Change the source of the saved network preference text from WifiManager
to WifiPickerTracker and update it through the
WifiPickerTrackerCallback.
Bug: 70983952
Test: atest WifiSettings2Test
Change-Id: Ia0a61f174a061892cd9376c16402e4983eaaa03c
diff --git a/src/com/android/settings/wifi/WifiSettings2.java b/src/com/android/settings/wifi/WifiSettings2.java
index 5389834..c06aef7 100644
--- a/src/com/android/settings/wifi/WifiSettings2.java
+++ b/src/com/android/settings/wifi/WifiSettings2.java
@@ -62,9 +62,7 @@
import com.android.settingslib.search.Indexable;
import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.search.SearchIndexableRaw;
-import com.android.settingslib.wifi.AccessPoint;
import com.android.settingslib.wifi.LongPressWifiEntryPreference;
-import com.android.settingslib.wifi.WifiSavedConfigUtils;
import com.android.wifitrackerlib.WifiEntry;
import com.android.wifitrackerlib.WifiPickerTracker;
@@ -129,7 +127,9 @@
// Worker thread used for WifiPickerTracker work
private HandlerThread mWorkerThread;
- private WifiPickerTracker mWifiPickerTracker;
+
+ @VisibleForTesting
+ WifiPickerTracker mWifiPickerTracker;
private WifiDialog mDialog;
@@ -449,12 +449,12 @@
@Override
public void onNumSavedNetworksChanged() {
- // TODO(b/70983952): Update the num saved networks preference text here
+ setAdditionalSettingsSummaries();
}
@Override
public void onNumSavedSubscriptionsChanged() {
- // TODO(b/70983952): Update the num saved networks preference text here
+ setAdditionalSettingsSummaries();
}
/**
@@ -557,36 +557,30 @@
? R.string.wifi_configure_settings_preference_summary_wakeup_on
: R.string.wifi_configure_settings_preference_summary_wakeup_off));
- final List<AccessPoint> savedNetworks =
- WifiSavedConfigUtils.getAllConfigs(getContext(), mWifiManager);
- final int numSavedNetworks = (savedNetworks != null) ? savedNetworks.size() : 0;
- mSavedNetworksPreference.setVisible(numSavedNetworks > 0);
- if (numSavedNetworks > 0) {
+ final int numSavedNetworks = mWifiPickerTracker.getNumSavedNetworks();
+ final int numSavedSubscriptions = mWifiPickerTracker.getNumSavedSubscriptions();
+ if (numSavedNetworks + numSavedSubscriptions > 0) {
+ mSavedNetworksPreference.setVisible(true);
mSavedNetworksPreference.setSummary(
- getSavedNetworkSettingsSummaryText(savedNetworks, numSavedNetworks));
+ getSavedNetworkSettingsSummaryText(numSavedNetworks, numSavedSubscriptions));
+ } else {
+ mSavedNetworksPreference.setVisible(false);
}
}
private String getSavedNetworkSettingsSummaryText(
- List<AccessPoint> savedNetworks, int numSavedNetworks) {
- int numSavedPasspointNetworks = 0;
- for (AccessPoint savedNetwork : savedNetworks) {
- if (savedNetwork.isPasspointConfig() || savedNetwork.isPasspoint()) {
- numSavedPasspointNetworks++;
- }
- }
- final int numSavedNormalNetworks = numSavedNetworks - numSavedPasspointNetworks;
-
- if (numSavedNetworks == numSavedNormalNetworks) {
+ int numSavedNetworks, int numSavedSubscriptions) {
+ if (numSavedSubscriptions == 0) {
return getResources().getQuantityString(R.plurals.wifi_saved_access_points_summary,
- numSavedNormalNetworks, numSavedNormalNetworks);
- } else if (numSavedNetworks == numSavedPasspointNetworks) {
+ numSavedNetworks, numSavedNetworks);
+ } else if (numSavedNetworks == 0) {
return getResources().getQuantityString(
R.plurals.wifi_saved_passpoint_access_points_summary,
- numSavedPasspointNetworks, numSavedPasspointNetworks);
+ numSavedSubscriptions, numSavedSubscriptions);
} else {
+ final int numTotalEntries = numSavedNetworks + numSavedSubscriptions;
return getResources().getQuantityString(R.plurals.wifi_saved_all_access_points_summary,
- numSavedNetworks, numSavedNetworks);
+ numTotalEntries, numTotalEntries);
}
}
diff --git a/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java b/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java
index 9a3d14e..a2f5daf 100644
--- a/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java
+++ b/tests/robotests/src/com/android/settings/wifi/WifiSettings2Test.java
@@ -32,10 +32,6 @@
import android.content.Context;
import android.content.Intent;
import android.content.res.Resources;
-import android.net.wifi.WifiConfiguration;
-import android.net.wifi.WifiManager;
-import android.net.wifi.hotspot2.PasspointConfiguration;
-import android.net.wifi.hotspot2.pps.HomeSp;
import android.os.Bundle;
import android.os.PowerManager;
import android.os.UserManager;
@@ -49,6 +45,7 @@
import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
import com.android.settings.testutils.shadow.ShadowFragment;
import com.android.settingslib.search.SearchIndexableRaw;
+import com.android.wifitrackerlib.WifiPickerTracker;
import org.junit.Before;
import org.junit.Test;
@@ -59,7 +56,6 @@
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
-import java.util.ArrayList;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
@@ -71,10 +67,10 @@
private PowerManager mPowerManager;
@Mock
private DataUsagePreference mDataUsagePreference;
- @Mock
- private WifiManager mWifiManager;
private Context mContext;
private WifiSettings2 mWifiSettings2;
+ @Mock
+ private WifiPickerTracker mMockWifiPickerTracker;
@Before
public void setUp() {
@@ -87,7 +83,7 @@
mWifiSettings2.mAddWifiNetworkPreference = new AddWifiNetworkPreference(mContext);
mWifiSettings2.mSavedNetworksPreference = new Preference(mContext);
mWifiSettings2.mConfigureWifiSettingsPreference = new Preference(mContext);
- mWifiSettings2.mWifiManager = mWifiManager;
+ mWifiSettings2.mWifiPickerTracker = mMockWifiPickerTracker;
}
@Test
@@ -121,30 +117,10 @@
verify(wifiSettings).handleAddNetworkRequest(anyInt(), any(Intent.class));
}
- private List<WifiConfiguration> createMockWifiConfigurations(int count) {
- final List<WifiConfiguration> mockConfigs = new ArrayList<>();
- for (int i = 0; i < count; i++) {
- mockConfigs.add(new WifiConfiguration());
- }
- return mockConfigs;
- }
-
- private List<PasspointConfiguration> createMockPasspointConfigurations(int count) {
- final List<PasspointConfiguration> mockConfigs = new ArrayList<>();
- for (int i = 0; i < count; i++) {
- final HomeSp sp = new HomeSp();
- sp.setFqdn("fqdn");
- final PasspointConfiguration config = new PasspointConfiguration();
- config.setHomeSp(sp);
- mockConfigs.add(config);
- }
- return mockConfigs;
- }
-
@Test
public void setAdditionalSettingsSummaries_hasSavedNetwork_preferenceVisible() {
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(createMockWifiConfigurations(NUM_NETWORKS));
+ when(mMockWifiPickerTracker.getNumSavedNetworks()).thenReturn(NUM_NETWORKS);
+ when(mMockWifiPickerTracker.getNumSavedSubscriptions()).thenReturn(0 /* count */);
mWifiSettings2.setAdditionalSettingsSummaries();
@@ -157,8 +133,8 @@
@Test
public void setAdditionalSettingsSummaries_hasSavedPasspointNetwork_preferenceVisible() {
- when(mWifiManager.getPasspointConfigurations())
- .thenReturn(createMockPasspointConfigurations(NUM_NETWORKS));
+ when(mMockWifiPickerTracker.getNumSavedNetworks()).thenReturn(0 /* count */);
+ when(mMockWifiPickerTracker.getNumSavedSubscriptions()).thenReturn(NUM_NETWORKS);
mWifiSettings2.setAdditionalSettingsSummaries();
@@ -171,10 +147,8 @@
@Test
public void setAdditionalSettingsSummaries_hasTwoKindsSavedNetwork_preferenceVisible() {
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(createMockWifiConfigurations(NUM_NETWORKS));
- when(mWifiManager.getPasspointConfigurations())
- .thenReturn(createMockPasspointConfigurations(NUM_NETWORKS));
+ when(mMockWifiPickerTracker.getNumSavedNetworks()).thenReturn(NUM_NETWORKS);
+ when(mMockWifiPickerTracker.getNumSavedSubscriptions()).thenReturn(NUM_NETWORKS);
mWifiSettings2.setAdditionalSettingsSummaries();
@@ -187,8 +161,8 @@
@Test
public void setAdditionalSettingsSummaries_noSavedNetwork_preferenceInvisible() {
- when(mWifiManager.getConfiguredNetworks())
- .thenReturn(createMockWifiConfigurations(0 /* count */));
+ when(mMockWifiPickerTracker.getNumSavedNetworks()).thenReturn(0 /* count */);
+ when(mMockWifiPickerTracker.getNumSavedSubscriptions()).thenReturn(0 /* count */);
mWifiSettings2.setAdditionalSettingsSummaries();