Merge "Update wifi header summary text to show metered state" into pi-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
740d37193f
@@ -43,8 +43,6 @@ import android.net.wifi.WifiManager;
|
||||
import android.net.wifi.WifiNetworkScoreCache;
|
||||
import android.net.wifi.hotspot2.PasspointConfiguration;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.Parcelable;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
@@ -896,6 +894,13 @@ public class AccessPoint implements Comparable<AccessPoint> {
|
||||
summary.append(WifiUtils.buildLoggingSummary(this, config));
|
||||
}
|
||||
|
||||
if (config != null && (WifiUtils.isMeteredOverridden(config) || config.meteredHint)) {
|
||||
return mContext.getResources().getString(
|
||||
R.string.preference_summary_default_combination,
|
||||
WifiUtils.getMeteredLabel(mContext, config),
|
||||
summary.toString());
|
||||
}
|
||||
|
||||
// If Speed label and summary are both present, use the preference combination to combine
|
||||
// the two, else return the non-null one.
|
||||
if (getSpeedLabel() != null && summary.length() != 0) {
|
||||
|
||||
@@ -16,12 +16,15 @@
|
||||
|
||||
package com.android.settingslib.wifi;
|
||||
|
||||
import android.content.Context;
|
||||
import android.net.wifi.ScanResult;
|
||||
import android.net.wifi.WifiConfiguration;
|
||||
import android.net.wifi.WifiInfo;
|
||||
import android.os.SystemClock;
|
||||
import android.support.annotation.VisibleForTesting;
|
||||
|
||||
import com.android.settingslib.R;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
public class WifiUtils {
|
||||
@@ -198,4 +201,18 @@ public class WifiUtils {
|
||||
// speed wil be determined by mRssi
|
||||
return timedScore.getScore().calculateBadge(result.level);
|
||||
}
|
||||
|
||||
public static String getMeteredLabel(Context context, WifiConfiguration config) {
|
||||
// meteredOverride is whether the user manually set the metered setting or not.
|
||||
// meteredHint is whether the network itself is telling us that it is metered
|
||||
if (config.meteredOverride == WifiConfiguration.METERED_OVERRIDE_METERED
|
||||
|| (config.meteredHint && !isMeteredOverridden(config))) {
|
||||
return context.getString(R.string.wifi_metered_label);
|
||||
}
|
||||
return context.getString(R.string.wifi_unmetered_label);
|
||||
}
|
||||
|
||||
public static boolean isMeteredOverridden(WifiConfiguration config) {
|
||||
return config.meteredOverride != WifiConfiguration.METERED_OVERRIDE_NONE;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,6 +27,7 @@ import android.net.RssiCurve;
|
||||
import android.net.ScoredNetwork;
|
||||
import android.net.WifiKey;
|
||||
import android.net.wifi.ScanResult;
|
||||
import android.net.wifi.WifiConfiguration;
|
||||
import android.net.wifi.WifiNetworkScoreCache;
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcelable;
|
||||
@@ -61,6 +62,8 @@ public class WifiUtilsTest {
|
||||
private WifiNetworkScoreCache mockWifiNetworkScoreCache;
|
||||
@Mock
|
||||
private AccessPoint mAccessPoint;
|
||||
@Mock
|
||||
WifiConfiguration mWifiConfig;
|
||||
|
||||
@Before
|
||||
public void setUp() {
|
||||
@@ -98,6 +101,52 @@ public class WifiUtilsTest {
|
||||
WifiUtils.getVisibilityStatus(mAccessPoint);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetMeteredLabel_returnsCorrectValues() {
|
||||
mWifiConfig.meteredHint = true;
|
||||
mWifiConfig.meteredOverride = WifiConfiguration.METERED_OVERRIDE_NONE;
|
||||
assertThat(WifiUtils.getMeteredLabel(mContext, mWifiConfig)).isEqualTo("Metered");
|
||||
|
||||
mWifiConfig.meteredHint = false;
|
||||
mWifiConfig.meteredOverride = WifiConfiguration.METERED_OVERRIDE_METERED;
|
||||
assertThat(WifiUtils.getMeteredLabel(mContext, mWifiConfig)).isEqualTo("Metered");
|
||||
|
||||
mWifiConfig.meteredHint = true;
|
||||
mWifiConfig.meteredOverride = WifiConfiguration.METERED_OVERRIDE_METERED;
|
||||
assertThat(WifiUtils.getMeteredLabel(mContext, mWifiConfig)).isEqualTo("Metered");
|
||||
|
||||
mWifiConfig.meteredHint = false;
|
||||
mWifiConfig.meteredOverride = WifiConfiguration.METERED_OVERRIDE_NOT_METERED;
|
||||
assertThat(WifiUtils.getMeteredLabel(mContext, mWifiConfig)).isEqualTo("Unmetered");
|
||||
|
||||
mWifiConfig.meteredHint = true;
|
||||
mWifiConfig.meteredOverride = WifiConfiguration.METERED_OVERRIDE_NOT_METERED;
|
||||
assertThat(WifiUtils.getMeteredLabel(mContext, mWifiConfig)).isEqualTo("Unmetered");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testIsMeteredOverridden_returnsCorrectValues() {
|
||||
mWifiConfig.meteredHint = true;
|
||||
mWifiConfig.meteredOverride = WifiConfiguration.METERED_OVERRIDE_NONE;
|
||||
assertThat(WifiUtils.isMeteredOverridden(mWifiConfig)).isFalse();
|
||||
|
||||
mWifiConfig.meteredHint = false;
|
||||
mWifiConfig.meteredOverride = WifiConfiguration.METERED_OVERRIDE_METERED;
|
||||
assertThat(WifiUtils.isMeteredOverridden(mWifiConfig)).isTrue();
|
||||
|
||||
mWifiConfig.meteredHint = true;
|
||||
mWifiConfig.meteredOverride = WifiConfiguration.METERED_OVERRIDE_METERED;
|
||||
assertThat(WifiUtils.isMeteredOverridden(mWifiConfig)).isTrue();
|
||||
|
||||
mWifiConfig.meteredHint = false;
|
||||
mWifiConfig.meteredOverride = WifiConfiguration.METERED_OVERRIDE_NOT_METERED;
|
||||
assertThat(WifiUtils.isMeteredOverridden(mWifiConfig)).isTrue();
|
||||
|
||||
mWifiConfig.meteredHint = true;
|
||||
mWifiConfig.meteredOverride = WifiConfiguration.METERED_OVERRIDE_NOT_METERED;
|
||||
assertThat(WifiUtils.isMeteredOverridden(mWifiConfig)).isTrue();
|
||||
}
|
||||
|
||||
private static ArrayList<ScanResult> buildScanResultCache() {
|
||||
ArrayList<ScanResult> scanResults = new ArrayList<>();
|
||||
for (int i = 0; i < 5; i++) {
|
||||
|
||||
Reference in New Issue
Block a user