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
This commit is contained in:
Quang Luong
2019-10-22 17:31:00 -07:00
parent 652fa61905
commit 1a5b620a19
2 changed files with 31 additions and 63 deletions

View File

@@ -62,9 +62,7 @@ import com.android.settings.widget.SwitchBarController;
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 @@ public class WifiSettings2 extends RestrictedSettingsFragment
// Worker thread used for WifiPickerTracker work
private HandlerThread mWorkerThread;
private WifiPickerTracker mWifiPickerTracker;
@VisibleForTesting
WifiPickerTracker mWifiPickerTracker;
private WifiDialog mDialog;
@@ -449,12 +449,12 @@ public class WifiSettings2 extends RestrictedSettingsFragment
@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 @@ public class WifiSettings2 extends RestrictedSettingsFragment
? 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);
}
}

View File

@@ -32,10 +32,6 @@ import android.content.ContentResolver;
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.datausage.DataUsagePreference;
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.RobolectricTestRunner;
import org.robolectric.RuntimeEnvironment;
import org.robolectric.annotation.Config;
import java.util.ArrayList;
import java.util.List;
@RunWith(RobolectricTestRunner.class)
@@ -71,10 +67,10 @@ public class WifiSettings2Test {
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 @@ public class WifiSettings2Test {
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 @@ public class WifiSettings2Test {
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 @@ public class WifiSettings2Test {
@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 @@ public class WifiSettings2Test {
@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 @@ public class WifiSettings2Test {
@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();