Merge "WifiNetworkSuggestion setIsMetered change to tri-state" into rvc-dev
diff --git a/wifi/java/android/net/wifi/WifiNetworkSuggestion.java b/wifi/java/android/net/wifi/WifiNetworkSuggestion.java
index cedf9b0..8c494943 100644
--- a/wifi/java/android/net/wifi/WifiNetworkSuggestion.java
+++ b/wifi/java/android/net/wifi/WifiNetworkSuggestion.java
@@ -100,7 +100,7 @@
/**
* Whether this network is metered or not.
*/
- private boolean mIsMetered;
+ private int mMeteredOverride;
/**
* Priority of this network among other network suggestions provided by the app.
* The lower the number, the higher the priority (i.e value of 0 = highest priority).
@@ -156,7 +156,7 @@
mIsHiddenSSID = false;
mIsAppInteractionRequired = false;
mIsUserInteractionRequired = false;
- mIsMetered = false;
+ mMeteredOverride = WifiConfiguration.METERED_OVERRIDE_NONE;
mIsSharedWithUser = true;
mIsSharedWithUserSet = false;
mIsInitialAutojoinEnabled = true;
@@ -421,14 +421,18 @@
/**
* Specifies whether this network is metered.
* <p>
- * <li>If not set, defaults to false (i.e not metered).</li>
+ * <li>If not set, defaults to detect automatically.</li>
*
* @param isMetered {@code true} to indicate that the network is metered, {@code false}
- * otherwise.
+ * for not metered.
* @return Instance of {@link Builder} to enable chaining of the builder method.
*/
public @NonNull Builder setIsMetered(boolean isMetered) {
- mIsMetered = isMetered;
+ if (isMetered) {
+ mMeteredOverride = WifiConfiguration.METERED_OVERRIDE_METERED;
+ } else {
+ mMeteredOverride = WifiConfiguration.METERED_OVERRIDE_NOT_METERED;
+ }
return this;
}
@@ -541,9 +545,7 @@
wifiConfiguration.hiddenSSID = mIsHiddenSSID;
wifiConfiguration.priority = mPriority;
- wifiConfiguration.meteredOverride =
- mIsMetered ? WifiConfiguration.METERED_OVERRIDE_METERED
- : WifiConfiguration.METERED_OVERRIDE_NOT_METERED;
+ wifiConfiguration.meteredOverride = mMeteredOverride;
wifiConfiguration.carrierId = mCarrierId;
wifiConfiguration.trusted = !mIsNetworkUntrusted;
return wifiConfiguration;
@@ -572,9 +574,7 @@
wifiConfiguration.FQDN = mPasspointConfiguration.getHomeSp().getFqdn();
wifiConfiguration.setPasspointUniqueId(mPasspointConfiguration.getUniqueId());
wifiConfiguration.priority = mPriority;
- wifiConfiguration.meteredOverride =
- mIsMetered ? WifiConfiguration.METERED_OVERRIDE_METERED
- : WifiConfiguration.METERED_OVERRIDE_NONE;
+ wifiConfiguration.meteredOverride = mMeteredOverride;
wifiConfiguration.trusted = !mIsNetworkUntrusted;
mPasspointConfiguration.setCarrierId(mCarrierId);
mPasspointConfiguration.setMeteredOverride(wifiConfiguration.meteredOverride);
diff --git a/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java b/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java
index aca1909..d1d1c61 100644
--- a/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java
+++ b/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java
@@ -56,7 +56,7 @@
.get(WifiConfiguration.KeyMgmt.NONE));
assertTrue(suggestion.isAppInteractionRequired);
assertFalse(suggestion.isUserInteractionRequired);
- assertEquals(WifiConfiguration.METERED_OVERRIDE_NOT_METERED,
+ assertEquals(WifiConfiguration.METERED_OVERRIDE_NONE,
suggestion.wifiConfiguration.meteredOverride);
assertEquals(-1, suggestion.wifiConfiguration.priority);
assertFalse(suggestion.isUserAllowedToManuallyConnect);
@@ -86,7 +86,7 @@
suggestion.wifiConfiguration.preSharedKey);
assertTrue(suggestion.isAppInteractionRequired);
assertFalse(suggestion.isUserInteractionRequired);
- assertEquals(WifiConfiguration.METERED_OVERRIDE_NOT_METERED,
+ assertEquals(WifiConfiguration.METERED_OVERRIDE_NONE,
suggestion.wifiConfiguration.meteredOverride);
assertEquals(0, suggestion.wifiConfiguration.priority);
assertFalse(suggestion.isUserAllowedToManuallyConnect);
@@ -125,6 +125,36 @@
/**
* Validate correctness of WifiNetworkSuggestion object created by
+ * {@link WifiNetworkSuggestion.Builder#build()} for WPA_PSK network which requires
+ * user interaction and is not metered.
+ */
+ @Test
+ public void
+ testWifiNetworkSuggestionBuilderForWpa2PskNetworkWithNotMeteredAndReqUserInteraction() {
+ WifiNetworkSuggestion suggestion = new WifiNetworkSuggestion.Builder()
+ .setSsid(TEST_SSID)
+ .setWpa2Passphrase(TEST_PRESHARED_KEY)
+ .setIsUserInteractionRequired(true)
+ .setIsInitialAutojoinEnabled(false)
+ .setIsMetered(false)
+ .build();
+
+ assertEquals("\"" + TEST_SSID + "\"", suggestion.wifiConfiguration.SSID);
+ assertTrue(suggestion.wifiConfiguration.allowedKeyManagement
+ .get(WifiConfiguration.KeyMgmt.WPA_PSK));
+ assertEquals("\"" + TEST_PRESHARED_KEY + "\"",
+ suggestion.wifiConfiguration.preSharedKey);
+ assertFalse(suggestion.isAppInteractionRequired);
+ assertTrue(suggestion.isUserInteractionRequired);
+ assertEquals(WifiConfiguration.METERED_OVERRIDE_NOT_METERED,
+ suggestion.wifiConfiguration.meteredOverride);
+ assertEquals(-1, suggestion.wifiConfiguration.priority);
+ assertTrue(suggestion.isUserAllowedToManuallyConnect);
+ assertFalse(suggestion.isInitialAutoJoinEnabled);
+ }
+
+ /**
+ * Validate correctness of WifiNetworkSuggestion object created by
* {@link WifiNetworkSuggestion.Builder#build()} for OWE network.
*/
@Test