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();