Loading packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java +7 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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) { Loading packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.java +17 −0 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading @@ -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; } } packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiUtilsTest.java +49 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -61,6 +62,8 @@ public class WifiUtilsTest { private WifiNetworkScoreCache mockWifiNetworkScoreCache; @Mock private AccessPoint mAccessPoint; @Mock WifiConfiguration mWifiConfig; @Before public void setUp() { Loading Loading @@ -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++) { Loading Loading
packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java +7 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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) { Loading
packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.java +17 −0 Original line number Diff line number Diff line Loading @@ -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 { Loading Loading @@ -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; } }
packages/SettingsLib/tests/robotests/src/com/android/settingslib/wifi/WifiUtilsTest.java +49 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -61,6 +62,8 @@ public class WifiUtilsTest { private WifiNetworkScoreCache mockWifiNetworkScoreCache; @Mock private AccessPoint mAccessPoint; @Mock WifiConfiguration mWifiConfig; @Before public void setUp() { Loading Loading @@ -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++) { Loading