WifiNetworkSuggestion setIsMetered change to tri-state
setIsMetered: true for metered; false for not metered; not set for detect automatically Bug: 157341534 Test: atest android.net.wifi Change-Id: If4c028e184b44ae53db80b94fe6d9ae7d06b3cb6
This commit is contained in:
@@ -100,7 +100,7 @@ public final class WifiNetworkSuggestion implements Parcelable {
|
||||
/**
|
||||
* 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 @@ public final class WifiNetworkSuggestion implements Parcelable {
|
||||
mIsHiddenSSID = false;
|
||||
mIsAppInteractionRequired = false;
|
||||
mIsUserInteractionRequired = false;
|
||||
mIsMetered = false;
|
||||
mMeteredOverride = WifiConfiguration.METERED_OVERRIDE_NONE;
|
||||
mIsSharedWithUser = true;
|
||||
mIsSharedWithUserSet = false;
|
||||
mIsInitialAutojoinEnabled = true;
|
||||
@@ -421,14 +421,18 @@ public final class WifiNetworkSuggestion implements Parcelable {
|
||||
/**
|
||||
* 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 @@ public final class WifiNetworkSuggestion implements Parcelable {
|
||||
|
||||
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 @@ public final class WifiNetworkSuggestion implements Parcelable {
|
||||
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);
|
||||
|
||||
@@ -56,7 +56,7 @@ public class WifiNetworkSuggestionTest {
|
||||
.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 @@ public class WifiNetworkSuggestionTest {
|
||||
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);
|
||||
@@ -123,6 +123,36 @@ public class WifiNetworkSuggestionTest {
|
||||
assertFalse(suggestion.isInitialAutoJoinEnabled);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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.
|
||||
|
||||
Reference in New Issue
Block a user