diff options
3 files changed, 112 insertions, 2 deletions
diff --git a/wifi/java/android/net/wifi/WifiNetworkSuggestion.java b/wifi/java/android/net/wifi/WifiNetworkSuggestion.java index e606d533a532..b7450c538ff8 100644 --- a/wifi/java/android/net/wifi/WifiNetworkSuggestion.java +++ b/wifi/java/android/net/wifi/WifiNetworkSuggestion.java @@ -917,6 +917,9 @@ public final class WifiNetworkSuggestion implements Parcelable { mPasspointConfiguration.setCarrierId(mCarrierId); mPasspointConfiguration.setSubscriptionId(mSubscriptionId); mPasspointConfiguration.setMeteredOverride(wifiConfiguration.meteredOverride); + mPasspointConfiguration.setOemPrivate(mIsNetworkOemPrivate); + mPasspointConfiguration.setOemPaid(mIsNetworkOemPaid); + mPasspointConfiguration.setCarrierMerged(mIsCarrierMerged); wifiConfiguration.macRandomizationSetting = mIsEnhancedMacRandomizationEnabled ? WifiConfiguration.RANDOMIZATION_ENHANCED : WifiConfiguration.RANDOMIZATION_PERSISTENT; diff --git a/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java b/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java index 357c5bcfa265..006fbaa028bd 100644 --- a/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java +++ b/wifi/java/android/net/wifi/hotspot2/PasspointConfiguration.java @@ -474,6 +474,27 @@ public final class PasspointConfiguration implements Parcelable { */ private boolean mIsEnhancedMacRandomizationEnabled = false; + + /** + * Indicate whether the network is oem paid or not. Networks are considered oem paid + * if the corresponding connection is only available to system apps. + * @hide + */ + private boolean mIsOemPaid; + + /** + * Indicate whether the network is oem private or not. Networks are considered oem private + * if the corresponding connection is only available to system apps. + * @hide + */ + private boolean mIsOemPrivate; + + /** + * Indicate whether or not the network is a carrier merged network. + * @hide + */ + private boolean mIsCarrierMerged; + /** * Indicates if the end user has expressed an explicit opinion about the * meteredness of this network, such as through the Settings app. @@ -589,6 +610,54 @@ public final class PasspointConfiguration implements Parcelable { } /** + * Set whether the network is oem paid or not. + * @hide + */ + public void setOemPaid(boolean isOemPaid) { + mIsOemPaid = isOemPaid; + } + + /** + * Get whether the network is oem paid or not. + * @hide + */ + public boolean isOemPaid() { + return mIsOemPaid; + } + + /** + * Set whether the network is oem private or not. + * @hide + */ + public void setOemPrivate(boolean isOemPrivate) { + mIsOemPrivate = isOemPrivate; + } + + /** + * Get whether the network is oem private or not. + * @hide + */ + public boolean isOemPrivate() { + return mIsOemPrivate; + } + + /** + * Set whether the network is carrier merged or not. + * @hide + */ + public void setCarrierMerged(boolean isCarrierMerged) { + mIsCarrierMerged = isCarrierMerged; + } + + /** + * Get whether the network is carrier merged or not. + * @hide + */ + public boolean isCarrierMerged() { + return mIsCarrierMerged; + } + + /** * Constructor for creating PasspointConfiguration with default values. */ public PasspointConfiguration() {} @@ -635,6 +704,9 @@ public final class PasspointConfiguration implements Parcelable { mIsMacRandomizationEnabled = source.mIsMacRandomizationEnabled; mIsEnhancedMacRandomizationEnabled = source.mIsEnhancedMacRandomizationEnabled; mMeteredOverride = source.mMeteredOverride; + mIsCarrierMerged = source.mIsCarrierMerged; + mIsOemPaid = source.mIsOemPaid; + mIsOemPrivate = source.mIsOemPrivate; } @Override @@ -669,6 +741,9 @@ public final class PasspointConfiguration implements Parcelable { dest.writeBoolean(mIsEnhancedMacRandomizationEnabled); dest.writeInt(mMeteredOverride); dest.writeInt(mSubscriptionId); + dest.writeBoolean(mIsCarrierMerged); + dest.writeBoolean(mIsOemPaid); + dest.writeBoolean(mIsOemPrivate); } @Override @@ -700,6 +775,9 @@ public final class PasspointConfiguration implements Parcelable { && mUsageLimitTimeLimitInMinutes == that.mUsageLimitTimeLimitInMinutes && mCarrierId == that.mCarrierId && mSubscriptionId == that.mSubscriptionId + && mIsOemPrivate == that.mIsOemPrivate + && mIsOemPaid == that.mIsOemPaid + && mIsCarrierMerged == that.mIsCarrierMerged && mIsAutojoinEnabled == that.mIsAutojoinEnabled && mIsMacRandomizationEnabled == that.mIsMacRandomizationEnabled && mIsEnhancedMacRandomizationEnabled == that.mIsEnhancedMacRandomizationEnabled @@ -715,7 +793,8 @@ public final class PasspointConfiguration implements Parcelable { mSubscriptionExpirationTimeMillis, mUsageLimitUsageTimePeriodInMinutes, mUsageLimitStartTimeInMillis, mUsageLimitDataLimit, mUsageLimitTimeLimitInMinutes, mServiceFriendlyNames, mCarrierId, mIsAutojoinEnabled, mIsMacRandomizationEnabled, - mIsEnhancedMacRandomizationEnabled, mMeteredOverride, mSubscriptionId); + mIsEnhancedMacRandomizationEnabled, mMeteredOverride, mSubscriptionId, + mIsCarrierMerged, mIsOemPaid, mIsOemPrivate); } @Override @@ -774,6 +853,9 @@ public final class PasspointConfiguration implements Parcelable { builder.append("mIsMacRandomizationEnabled:" + mIsMacRandomizationEnabled); builder.append("mIsEnhancedMacRandomizationEnabled:" + mIsEnhancedMacRandomizationEnabled); builder.append("mMeteredOverride:" + mMeteredOverride); + builder.append("mIsCarrierMerged:" + mIsCarrierMerged); + builder.append("mIsOemPaid:" + mIsOemPaid); + builder.append("mIsOemPrivate" + mIsOemPrivate); return builder.toString(); } @@ -884,6 +966,10 @@ public final class PasspointConfiguration implements Parcelable { config.mIsEnhancedMacRandomizationEnabled = in.readBoolean(); config.mMeteredOverride = in.readInt(); config.mSubscriptionId = in.readInt(); + config.mIsCarrierMerged = in.readBoolean(); + config.mIsOemPaid = in.readBoolean(); + config.mIsOemPrivate = in.readBoolean(); + return config; } diff --git a/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java b/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java index 643a78c38f91..5e829188f93f 100644 --- a/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java +++ b/wifi/tests/src/android/net/wifi/WifiNetworkSuggestionTest.java @@ -809,7 +809,7 @@ public class WifiNetworkSuggestionTest { /** * Ensure {@link WifiNetworkSuggestion.Builder#build()} throws an exception * when both {@link WifiNetworkSuggestion.Builder#setWpa3Passphrase(String)} and - * {@link WifiNetworkSuggestion.Builderi + * {@link WifiNetworkSuggestion.Builder * #setWpa3EnterpriseStandardModeConfig(WifiEnterpriseConfig)} * are invoked. */ @@ -1310,6 +1310,7 @@ public class WifiNetworkSuggestionTest { .build(); assertTrue(suggestion.isOemPaid()); assertFalse(suggestion.isUserAllowedToManuallyConnect); + assertTrue(suggestion.getPasspointConfig().isOemPaid()); } /** @@ -1345,6 +1346,7 @@ public class WifiNetworkSuggestionTest { .build(); assertTrue(suggestion.isOemPrivate()); assertFalse(suggestion.isUserAllowedToManuallyConnect); + assertTrue(suggestion.getPasspointConfig().isOemPrivate()); } /** @@ -1439,6 +1441,25 @@ public class WifiNetworkSuggestionTest { } /** + * Validate {@link WifiNetworkSuggestion.Builder#setCarrierMerged(boolean)} (boolean)} set the + * correct value to the passpoint network. + */ + @Test + public void testSetCarrierMergedNetworkOnPasspointNetwork() { + assumeTrue(SdkLevel.isAtLeastS()); + + PasspointConfiguration passpointConfiguration = PasspointTestUtils.createConfig(); + WifiNetworkSuggestion suggestion = new WifiNetworkSuggestion.Builder() + .setPasspointConfig(passpointConfiguration) + .setSubscriptionId(1) + .setCarrierMerged(true) + .setIsMetered(true) + .build(); + assertTrue(suggestion.isCarrierMerged()); + assertTrue(suggestion.getPasspointConfig().isCarrierMerged()); + } + + /** * Ensure {@link WifiNetworkSuggestion.Builder#build()} throws an exception * when set both {@link WifiNetworkSuggestion.Builder#setCarrierMerged(boolean)} (boolean)} * to true on a network is not metered. |