summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author David Su <dysu@google.com> 2020-02-06 18:15:44 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-02-06 18:15:44 +0000
commit8301f05cd78f1fff3197d225515dd082ebbd606e (patch)
treee25d2101336781fbf0ebfd71d4038e66dd9e1740
parent3ef03023e56ec8e3d8b2a4659104fc02ea9a6bbb (diff)
parent8257d962200be5b29e6945670fcce66e69443ae0 (diff)
Merge changes from topics "api-review-getNetworkSelectionStatus", "api-review-networkselectiondisabled-max"
* changes: SettingsLib: Hide NETWORK_SELECTION_DISABLED_MAX Wifi: Hide NETWORK_SELECTION_DISABLED_MAX Migrate to getNetworkSelectionStatus()
-rwxr-xr-xapi/system-current.txt4
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java11
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.java24
-rw-r--r--packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java8
-rw-r--r--wifi/java/android/net/wifi/WifiConfiguration.java36
-rw-r--r--wifi/tests/src/android/net/wifi/WifiConfigurationTest.java14
6 files changed, 76 insertions, 21 deletions
diff --git a/api/system-current.txt b/api/system-current.txt
index d7c9a773cd91..273309e17b60 100755
--- a/api/system-current.txt
+++ b/api/system-current.txt
@@ -7571,13 +7571,12 @@ package android.net.wifi {
@Deprecated public static class WifiConfiguration.NetworkSelectionStatus {
method @Deprecated public int getDisableReasonCounter(int);
method @Deprecated public long getDisableTime();
+ method @Deprecated public static int getMaxNetworkSelectionDisableReason();
method @Deprecated @Nullable public static String getNetworkDisableReasonString(int);
method @Deprecated public int getNetworkSelectionDisableReason();
method @Deprecated public int getNetworkSelectionStatus();
method @Deprecated @NonNull public String getNetworkStatusString();
method @Deprecated public boolean hasEverConnected();
- method @Deprecated public boolean isNetworkEnabled();
- method @Deprecated public boolean isNetworkPermanentlyDisabled();
field @Deprecated public static final int DISABLED_ASSOCIATION_REJECTION = 1; // 0x1
field @Deprecated public static final int DISABLED_AUTHENTICATION_FAILURE = 2; // 0x2
field @Deprecated public static final int DISABLED_AUTHENTICATION_NO_CREDENTIALS = 5; // 0x5
@@ -7588,7 +7587,6 @@ package android.net.wifi {
field @Deprecated public static final int DISABLED_NONE = 0; // 0x0
field @Deprecated public static final int DISABLED_NO_INTERNET_PERMANENT = 6; // 0x6
field @Deprecated public static final int DISABLED_NO_INTERNET_TEMPORARY = 4; // 0x4
- field @Deprecated public static final int NETWORK_SELECTION_DISABLED_MAX = 10; // 0xa
field @Deprecated public static final int NETWORK_SELECTION_ENABLED = 0; // 0x0
field @Deprecated public static final int NETWORK_SELECTION_PERMANENTLY_DISABLED = 2; // 0x2
field @Deprecated public static final int NETWORK_SELECTION_TEMPORARY_DISABLED = 1; // 0x1
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
index 44e70f436963..bfb79c05a432 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/AccessPoint.java
@@ -16,6 +16,9 @@
package com.android.settingslib.wifi;
+import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.NETWORK_SELECTION_ENABLED;
+import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.NETWORK_SELECTION_PERMANENTLY_DISABLED;
+
import android.annotation.IntDef;
import android.annotation.MainThread;
import android.annotation.Nullable;
@@ -1144,11 +1147,15 @@ public class AccessPoint implements Comparable<AccessPoint> {
mInfo != null ? mInfo.getRequestingPackageName() : null));
} else { // not active
if (mConfig != null && mConfig.hasNoInternetAccess()) {
- int messageID = mConfig.getNetworkSelectionStatus().isNetworkPermanentlyDisabled()
+ int messageID =
+ mConfig.getNetworkSelectionStatus().getNetworkSelectionStatus()
+ == NETWORK_SELECTION_PERMANENTLY_DISABLED
? R.string.wifi_no_internet_no_reconnect
: R.string.wifi_no_internet;
summary.append(mContext.getString(messageID));
- } else if (mConfig != null && !mConfig.getNetworkSelectionStatus().isNetworkEnabled()) {
+ } else if (mConfig != null
+ && (mConfig.getNetworkSelectionStatus().getNetworkSelectionStatus()
+ != NETWORK_SELECTION_ENABLED)) {
WifiConfiguration.NetworkSelectionStatus networkStatus =
mConfig.getNetworkSelectionStatus();
switch (networkStatus.getNetworkSelectionDisableReason()) {
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.java
index d4e0510e15a7..d23364952357 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiUtils.java
@@ -16,9 +16,13 @@
package com.android.settingslib.wifi;
+import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.NETWORK_SELECTION_ENABLED;
+import static android.net.wifi.WifiConfiguration.NetworkSelectionStatus.getMaxNetworkSelectionDisableReason;
+
import android.content.Context;
import android.net.wifi.ScanResult;
import android.net.wifi.WifiConfiguration;
+import android.net.wifi.WifiConfiguration.NetworkSelectionStatus;
import android.net.wifi.WifiInfo;
import android.os.SystemClock;
@@ -41,7 +45,9 @@ public class WifiUtils {
summary.append(" f=" + Integer.toString(info.getFrequency()));
}
summary.append(" " + getVisibilityStatus(accessPoint));
- if (config != null && !config.getNetworkSelectionStatus().isNetworkEnabled()) {
+ if (config != null
+ && (config.getNetworkSelectionStatus().getNetworkSelectionStatus()
+ != NETWORK_SELECTION_ENABLED)) {
summary.append(" (" + config.getNetworkSelectionStatus().getNetworkStatusString());
if (config.getNetworkSelectionStatus().getDisableTime() > 0) {
long now = System.currentTimeMillis();
@@ -58,15 +64,13 @@ public class WifiUtils {
}
if (config != null) {
- WifiConfiguration.NetworkSelectionStatus networkStatus =
- config.getNetworkSelectionStatus();
- for (int index = WifiConfiguration.NetworkSelectionStatus.DISABLED_NONE;
- index < WifiConfiguration.NetworkSelectionStatus
- .NETWORK_SELECTION_DISABLED_MAX; index++) {
- if (networkStatus.getDisableReasonCounter(index) != 0) {
- summary.append(" " + WifiConfiguration.NetworkSelectionStatus
- .getNetworkDisableReasonString(index) + "="
- + networkStatus.getDisableReasonCounter(index));
+ NetworkSelectionStatus networkStatus = config.getNetworkSelectionStatus();
+ for (int reason = 0; reason <= getMaxNetworkSelectionDisableReason(); reason++) {
+ if (networkStatus.getDisableReasonCounter(reason) != 0) {
+ summary.append(" ")
+ .append(NetworkSelectionStatus.getNetworkDisableReasonString(reason))
+ .append("=")
+ .append(networkStatus.getDisableReasonCounter(reason));
}
}
}
diff --git a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java
index 42f3cbb04cf8..bcabec858487 100644
--- a/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java
+++ b/packages/SettingsLib/tests/integ/src/com/android/settingslib/wifi/AccessPointTest.java
@@ -465,6 +465,8 @@ public class AccessPointTest {
WifiConfiguration.NetworkSelectionStatus status =
mock(WifiConfiguration.NetworkSelectionStatus.class);
when(configuration.getNetworkSelectionStatus()).thenReturn(status);
+ when(status.getNetworkSelectionStatus()).thenReturn(
+ WifiConfiguration.NetworkSelectionStatus.NETWORK_SELECTION_TEMPORARY_DISABLED);
when(status.getNetworkSelectionDisableReason()).thenReturn(
WifiConfiguration.NetworkSelectionStatus.DISABLED_BY_WRONG_PASSWORD);
AccessPoint ap = new AccessPoint(mContext, configuration);
@@ -1370,13 +1372,13 @@ public class AccessPointTest {
public void testOsuAccessPointSummary_showsProvisioningUpdates() {
OsuProvider provider = createOsuProvider();
Context spyContext = spy(new ContextWrapper(mContext));
- AccessPoint osuAccessPoint = new AccessPoint(spyContext, provider,
- mScanResults);
+ when(spyContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mMockWifiManager);
Map<OsuProvider, PasspointConfiguration> osuProviderConfigMap = new HashMap<>();
osuProviderConfigMap.put(provider, null);
- when(spyContext.getSystemService(Context.WIFI_SERVICE)).thenReturn(mMockWifiManager);
when(mMockWifiManager.getMatchingPasspointConfigsForOsuProviders(
Collections.singleton(provider))).thenReturn(osuProviderConfigMap);
+ AccessPoint osuAccessPoint = new AccessPoint(spyContext, provider,
+ mScanResults);
osuAccessPoint.setListener(mMockAccessPointListener);
diff --git a/wifi/java/android/net/wifi/WifiConfiguration.java b/wifi/java/android/net/wifi/WifiConfiguration.java
index 62d6067c86f3..7c3d0b92dd0a 100644
--- a/wifi/java/android/net/wifi/WifiConfiguration.java
+++ b/wifi/java/android/net/wifi/WifiConfiguration.java
@@ -1301,10 +1301,34 @@ public class WifiConfiguration implements Parcelable {
public static final int DISABLED_BY_WRONG_PASSWORD = 8;
/** This network is disabled because service is not subscribed. */
public static final int DISABLED_AUTHENTICATION_NO_SUBSCRIPTION = 9;
- /** All other disable reasons should be strictly less than this value. */
+ /**
+ * All other disable reasons should be strictly less than this value.
+ * @hide
+ */
public static final int NETWORK_SELECTION_DISABLED_MAX = 10;
/**
+ * Get an integer that is equal to the maximum integer value of all the
+ * DISABLED_* reasons
+ * e.g. {@link #DISABLED_NONE}, {@link #DISABLED_ASSOCIATION_REJECTION}, etc.
+ *
+ * All DISABLED_* constants will be contiguous in the range
+ * 0, 1, 2, 3, ..., getMaxNetworkSelectionDisableReasons()
+ *
+ * <br />
+ * For example, this can be used to iterate through all the network selection
+ * disable reasons like so:
+ * <pre>{@code
+ * for (int reason = 0; reason <= getMaxNetworkSelectionDisableReasons(); reason++) {
+ * ...
+ * }
+ * }</pre>
+ */
+ public static int getMaxNetworkSelectionDisableReason() {
+ return NETWORK_SELECTION_DISABLED_MAX - 1;
+ }
+
+ /**
* Contains info about disable reasons.
* @hide
*/
@@ -1706,7 +1730,10 @@ public class WifiConfiguration implements Parcelable {
return mStatus;
}
- /** True if the current network is enabled to join network selection, false otherwise. */
+ /**
+ * True if the current network is enabled to join network selection, false otherwise.
+ * @hide
+ */
public boolean isNetworkEnabled() {
return mStatus == NETWORK_SELECTION_ENABLED;
}
@@ -1719,7 +1746,10 @@ public class WifiConfiguration implements Parcelable {
return mStatus == NETWORK_SELECTION_TEMPORARY_DISABLED;
}
- /** True if the current network is permanently disabled, false otherwise. */
+ /**
+ * True if the current network is permanently disabled, false otherwise.
+ * @hide
+ */
public boolean isNetworkPermanentlyDisabled() {
return mStatus == NETWORK_SELECTION_PERMANENTLY_DISABLED;
}
diff --git a/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java b/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
index 8023160a811e..05a3dce44022 100644
--- a/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiConfigurationTest.java
@@ -336,6 +336,20 @@ public class WifiConfigurationTest {
}
/**
+ * Ensure that {@link NetworkSelectionStatus#getMaxNetworkSelectionDisableReason()} returns
+ * the maximum disable reason.
+ */
+ @Test
+ public void testNetworkSelectionGetMaxNetworkSelectionDisableReason() {
+ int maxReason = Integer.MIN_VALUE;
+ for (int i = 0; i < NetworkSelectionStatus.DISABLE_REASON_INFOS.size(); i++) {
+ int reason = NetworkSelectionStatus.DISABLE_REASON_INFOS.keyAt(i);
+ maxReason = Math.max(maxReason, reason);
+ }
+ assertEquals(maxReason, NetworkSelectionStatus.getMaxNetworkSelectionDisableReason());
+ }
+
+ /**
* Ensure that {@link WifiConfiguration#setSecurityParams(int)} sets up the
* {@link WifiConfiguration} object correctly for SAE security type.
* @throws Exception