Merge "[PasspointV2] Set summary of saved networks preference" into qt-dev

This commit is contained in:
TreeHugger Robot
2019-04-18 00:58:22 +00:00
committed by Android (Google) Code Review
3 changed files with 104 additions and 7 deletions

View File

@@ -2303,11 +2303,20 @@
<string name="wifi_forget_dialog_message">All passwords for this network will be deleted</string>
<!-- Wi-Fi Advanced Settings --> <skip />
<!-- Wi-Fi settings screen, Saved networks summary. This shows below the "Saved networks" item and indicates the number of networks a user has saved. -->
<!-- Wi-Fi settings screen, Saved networks summary. This shows below the "Saved networks" item and indicates the number of networks, not including passpoint network, a user has saved. [CHAR LIMIT=30] -->
<plurals name="wifi_saved_access_points_summary">
<item quantity="one">1 network</item>
<item quantity="other">%d networks</item>
</plurals>
<!-- Wi-Fi settings screen, Saved passpoint networks summary. This shows below the "Saved networks" item and indicates the number of passpoint networks a user has saved. [CHAR LIMIT=30] -->
<plurals name="wifi_saved_passpoint_access_points_summary">
<item quantity="one">1 subscription</item>
<item quantity="other">%d subscriptions</item>
</plurals>
<!-- Wi-Fi settings screen, Saved passpoint networks summary. This shows below the "Saved networks" item and indicates number of whole kinds networks, if there are both normal saved networks and saved passpoint networks. The number will be at least 2. [CHAR LIMIT=60] -->
<plurals name="wifi_saved_all_access_points_summary">
<item quantity="other">%d networks &amp; subscriptions</item>
</plurals>
<!-- Wi-Fi settings screen, advanced, settings section. This is a header shown above advanced wifi settings. [CHAR LIMIT=30] -->
<string name="wifi_advanced_titlebar">Advanced Wi\u2011Fi</string>
<!-- Wi-Fi settings screen, advanced, title of the item to show the Wi-Fi device's SSID. [CHAR LIMIT=20] -->

View File

@@ -77,6 +77,7 @@ import com.android.settingslib.search.SearchIndexable;
import com.android.settingslib.wifi.AccessPoint;
import com.android.settingslib.wifi.AccessPoint.AccessPointListener;
import com.android.settingslib.wifi.AccessPointPreference;
import com.android.settingslib.wifi.WifiSavedConfigUtils;
import com.android.settingslib.wifi.WifiTracker;
import com.android.settingslib.wifi.WifiTrackerFactory;
@@ -958,11 +959,38 @@ public class WifiSettings extends RestrictedSettingsFragment
isWifiWakeupEnabled()
? R.string.wifi_configure_settings_preference_summary_wakeup_on
: R.string.wifi_configure_settings_preference_summary_wakeup_off));
final int numSavedNetworks = mWifiTracker.getNumSavedNetworks();
final List<AccessPoint> savedNetworks =
WifiSavedConfigUtils.getAllConfigs(getContext(), mWifiManager);
final int numSavedNetworks = (savedNetworks != null) ? savedNetworks.size() : 0;
mSavedNetworksPreference.setVisible(numSavedNetworks > 0);
if (numSavedNetworks > 0) {
mSavedNetworksPreference.setSummary(
getResources().getQuantityString(R.plurals.wifi_saved_access_points_summary,
numSavedNetworks, numSavedNetworks));
getSavedNetworkSettingsSummaryText(savedNetworks, numSavedNetworks));
}
}
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) {
return getResources().getQuantityString(R.plurals.wifi_saved_access_points_summary,
numSavedNormalNetworks, numSavedNormalNetworks);
} else if (numSavedNetworks == numSavedPasspointNetworks) {
return getResources().getQuantityString(
R.plurals.wifi_saved_passpoint_access_points_summary,
numSavedPasspointNetworks, numSavedPasspointNetworks);
} else {
return getResources().getQuantityString(R.plurals.wifi_saved_all_access_points_summary,
numSavedNetworks, numSavedNetworks);
}
}
private boolean isWifiWakeupEnabled() {

View File

@@ -32,6 +32,10 @@ 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 +53,7 @@ import com.android.settings.testutils.shadow.ShadowDataUsageUtils;
import com.android.settingslib.wifi.AccessPoint;
import com.android.settingslib.wifi.WifiTracker;
import java.util.ArrayList;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -71,6 +76,8 @@ public class WifiSettingsTest {
private PowerManager mPowerManager;
@Mock
private DataUsagePreference mDataUsagePreference;
@Mock
private WifiManager mWifiManager;
private Context mContext;
private WifiSettings mWifiSettings;
@@ -86,6 +93,7 @@ public class WifiSettingsTest {
mWifiSettings.mSavedNetworksPreference = new Preference(mContext);
mWifiSettings.mConfigureWifiSettingsPreference = new Preference(mContext);
mWifiSettings.mWifiTracker = mWifiTracker;
mWifiSettings.mWifiManager = mWifiManager;
}
@Test
@@ -119,9 +127,30 @@ public class WifiSettingsTest {
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(mWifiTracker.getNumSavedNetworks()).thenReturn(NUM_NETWORKS);
when(mWifiManager.getConfiguredNetworks())
.thenReturn(createMockWifiConfigurations(NUM_NETWORKS));
mWifiSettings.setAdditionalSettingsSummaries();
@@ -132,9 +161,40 @@ public class WifiSettingsTest {
NUM_NETWORKS, NUM_NETWORKS));
}
@Test
public void setAdditionalSettingsSummaries_hasSavedPasspointNetwork_preferenceVisible() {
when(mWifiManager.getPasspointConfigurations())
.thenReturn(createMockPasspointConfigurations(NUM_NETWORKS));
mWifiSettings.setAdditionalSettingsSummaries();
assertThat(mWifiSettings.mSavedNetworksPreference.isVisible()).isTrue();
assertThat(mWifiSettings.mSavedNetworksPreference.getSummary()).isEqualTo(
mContext.getResources().getQuantityString(
R.plurals.wifi_saved_passpoint_access_points_summary,
NUM_NETWORKS, NUM_NETWORKS));
}
@Test
public void setAdditionalSettingsSummaries_hasTwoKindsSavedNetwork_preferenceVisible() {
when(mWifiManager.getConfiguredNetworks())
.thenReturn(createMockWifiConfigurations(NUM_NETWORKS));
when(mWifiManager.getPasspointConfigurations())
.thenReturn(createMockPasspointConfigurations(NUM_NETWORKS));
mWifiSettings.setAdditionalSettingsSummaries();
assertThat(mWifiSettings.mSavedNetworksPreference.isVisible()).isTrue();
assertThat(mWifiSettings.mSavedNetworksPreference.getSummary()).isEqualTo(
mContext.getResources().getQuantityString(
R.plurals.wifi_saved_all_access_points_summary,
NUM_NETWORKS*2, NUM_NETWORKS*2));
}
@Test
public void setAdditionalSettingsSummaries_noSavedNetwork_preferenceInvisible() {
when(mWifiTracker.getNumSavedNetworks()).thenReturn(0);
when(mWifiManager.getConfiguredNetworks())
.thenReturn(createMockWifiConfigurations(0 /* count */));
mWifiSettings.setAdditionalSettingsSummaries();