summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNate Jiang <qiangjiang@google.com>2020-04-10 15:45:26 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2020-04-10 15:45:26 +0000
commitf975a91351d1ef7c7838ac46751c2b4298235447 (patch)
treeabcdb9da4dd23c3f6398aef507be5f49c8d4c433
parentb5d1783bbb2cf9e2ca8f3d060c112a82ab2f12f5 (diff)
parent572313da69d7f254af378bebff33030b9803ab7f (diff)
Merge "When user approve IMSI protection exemption restore auto join." into rvc-dev
-rw-r--r--service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java16
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java20
2 files changed, 28 insertions, 8 deletions
diff --git a/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java b/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java
index 894a8bc0f..28cf627b5 100644
--- a/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java
+++ b/service/java/com/android/server/wifi/WifiNetworkSuggestionsManager.java
@@ -1168,9 +1168,19 @@ public class WifiNetworkSuggestionsManager {
private void restoreInitialAutojoinForCarrierId(int carrierId) {
for (PerAppInfo appInfo : mActiveNetworkSuggestionsPerApp.values()) {
for (ExtendedWifiNetworkSuggestion ewns : appInfo.extNetworkSuggestions) {
- if (isSimBasedSuggestion(ewns)
- && getCarrierIdFromSuggestion(ewns) == carrierId) {
- ewns.isAutojoinEnabled |= ewns.wns.isInitialAutoJoinEnabled;
+ if (!(isSimBasedSuggestion(ewns)
+ && getCarrierIdFromSuggestion(ewns) == carrierId)) {
+ continue;
+ }
+ if (mVerboseLoggingEnabled) {
+ Log.v(TAG, "Restore auto-join for suggestion: " + ewns);
+ }
+ ewns.isAutojoinEnabled |= ewns.wns.isInitialAutoJoinEnabled;
+ // Restore passpoint provider auto join.
+ if (ewns.wns.passpointConfiguration != null) {
+ mWifiInjector.getPasspointManager()
+ .enableAutojoin(ewns.wns.passpointConfiguration.getUniqueId(),
+ null, ewns.isAutojoinEnabled);
}
}
}
diff --git a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java
index 3899453d5..7db13a17a 100644
--- a/tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java
+++ b/tests/wifitests/src/com/android/server/wifi/WifiNetworkSuggestionsManagerTest.java
@@ -123,6 +123,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
private static final int TEST_SUBID = 1;
private static final int TEST_NETWORK_ID = 110;
private static final int TEST_CARRIER_ID = 1911;
+ private static final String TEST_IMSI = "123456*";
private @Mock WifiContext mContext;
private @Mock Resources mResources;
@@ -3520,17 +3521,26 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
when(mWifiCarrierInfoManager.requiresImsiEncryption(TEST_SUBID)).thenReturn(false);
when(mWifiCarrierInfoManager.hasUserApprovedImsiPrivacyExemptionForCarrier(TEST_CARRIER_ID))
.thenReturn(false);
+ when(mPasspointManager.addOrUpdateProvider(any(), anyInt(), anyString(), anyBoolean(),
+ anyBoolean())).thenReturn(true);
+
WifiConfiguration eapSimConfig = WifiConfigurationTestUtil.createEapNetwork(
WifiEnterpriseConfig.Eap.SIM, WifiEnterpriseConfig.Phase2.NONE);
+ PasspointConfiguration passpointConfiguration =
+ createTestConfigWithSimCredential(TEST_FQDN, TEST_IMSI, TEST_REALM);
+ WifiConfiguration dummyConfiguration = createDummyWifiConfigurationForPasspoint(TEST_FQDN);
+ dummyConfiguration.setPasspointUniqueId(passpointConfiguration.getUniqueId());
WifiNetworkSuggestion networkSuggestion = new WifiNetworkSuggestion(
eapSimConfig, null, true, false, true, true);
+ WifiNetworkSuggestion passpointSuggestion = new WifiNetworkSuggestion(
+ dummyConfiguration, passpointConfiguration, true, false, true, true);
List<WifiNetworkSuggestion> networkSuggestionList =
- new ArrayList<WifiNetworkSuggestion>() {{
- add(networkSuggestion);
- }};
+ Arrays.asList(networkSuggestion, passpointSuggestion);
+
assertEquals(WifiManager.STATUS_NETWORK_SUGGESTIONS_SUCCESS,
mWifiNetworkSuggestionsManager.add(networkSuggestionList, TEST_UID_1,
TEST_PACKAGE_1, TEST_FEATURE));
+
verifyNoMoreInteractions(mNotificationManger);
Set<ExtendedWifiNetworkSuggestion> matchedSuggestion = mWifiNetworkSuggestionsManager
.getNetworkSuggestionsForScanDetail(createScanDetailForNetwork(eapSimConfig));
@@ -3544,7 +3554,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
mUserApproveCarrierListenerArgumentCaptor.getValue().onUserAllowed(TEST_CARRIER_ID);
when(mWifiCarrierInfoManager.hasUserApprovedImsiPrivacyExemptionForCarrier(TEST_CARRIER_ID))
.thenReturn(true);
-
+ verify(mPasspointManager).enableAutojoin(anyString(), any(), anyBoolean());
matchedSuggestion = mWifiNetworkSuggestionsManager
.getNetworkSuggestionsForScanDetail(createScanDetailForNetwork(eapSimConfig));
@@ -3744,7 +3754,7 @@ public class WifiNetworkSuggestionsManagerTest extends WifiBaseTest {
homeSp.setFriendlyName(TEST_FRIENDLY_NAME);
config.setHomeSp(homeSp);
Credential credential = new Credential();
- credential.setRealm(TEST_REALM);
+ credential.setRealm(realm);
Credential.SimCredential simCredential = new Credential.SimCredential();
simCredential.setImsi(imsi);
simCredential.setEapType(EAPConstants.EAP_SIM);