summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/java/com/android/server/wifi/ClientModeImpl.java2
-rw-r--r--service/java/com/android/server/wifi/EapFailureNotifier.java17
-rw-r--r--service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java1
-rw-r--r--service/tests/wifitests/src/com/android/server/wifi/EapFailureNotifierTest.java5
4 files changed, 25 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/ClientModeImpl.java b/service/java/com/android/server/wifi/ClientModeImpl.java
index c5f6966df2..d4858416fe 100644
--- a/service/java/com/android/server/wifi/ClientModeImpl.java
+++ b/service/java/com/android/server/wifi/ClientModeImpl.java
@@ -5798,6 +5798,8 @@ public class ClientModeImpl extends StateMachine implements ClientMode {
// We need to get the updated pseudonym from supplicant for EAP-SIM/AKA/AKA'
if (config.enterpriseConfig != null
&& config.enterpriseConfig.isAuthenticationSimBased()) {
+ // clear SIM related EapFailurenotification
+ mEapFailureNotifier.dismissEapFailureNotification(config.SSID);
if (mWifiCarrierInfoManager.isOobPseudonymFeatureEnabled(
config.carrierId)) {
if (mVerboseLoggingEnabled) {
diff --git a/service/java/com/android/server/wifi/EapFailureNotifier.java b/service/java/com/android/server/wifi/EapFailureNotifier.java
index 64143eb816..fc0dddb5f6 100644
--- a/service/java/com/android/server/wifi/EapFailureNotifier.java
+++ b/service/java/com/android/server/wifi/EapFailureNotifier.java
@@ -135,6 +135,23 @@ public class EapFailureNotifier {
}
/**
+ * Dismiss notification
+ */
+ public void dismissEapFailureNotification(String ssid) {
+ if (TextUtils.isEmpty(mCurrentShownSsid) || TextUtils.isEmpty(ssid)
+ || !TextUtils.equals(ssid, mCurrentShownSsid)) {
+ return;
+ }
+ StatusBarNotification[] activeNotifications = mNotificationManager.getActiveNotifications();
+ for (StatusBarNotification activeNotification : activeNotifications) {
+ if ((activeNotification.getId() == NOTIFICATION_ID)) {
+ mNotificationManager.cancel(NOTIFICATION_ID);
+ return;
+ }
+ }
+ }
+
+ /**
* Display eap error notification which defined by carrier.
*
* @param ssid Error Message which defined by carrier
diff --git a/service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java b/service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java
index 915c9a49b0..9bb62b5c89 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/ClientModeImplTest.java
@@ -1577,6 +1577,7 @@ public class ClientModeImplTest extends WifiBaseTest {
mCmi.sendMessage(WifiMonitor.NETWORK_CONNECTION_EVENT,
new NetworkConnectionEventInfo(0, wifiSsid, TEST_BSSID_STR, false, null));
mLooper.dispatchAll();
+ verify(mEapFailureNotifier).dismissEapFailureNotification(mConnectedNetwork.SSID);
assertEquals("L3ProvisioningState", getCurrentState().getName());
}
diff --git a/service/tests/wifitests/src/com/android/server/wifi/EapFailureNotifierTest.java b/service/tests/wifitests/src/com/android/server/wifi/EapFailureNotifierTest.java
index e257c2d1bb..cb0706e4b0 100644
--- a/service/tests/wifitests/src/com/android/server/wifi/EapFailureNotifierTest.java
+++ b/service/tests/wifitests/src/com/android/server/wifi/EapFailureNotifierTest.java
@@ -20,6 +20,7 @@ import static com.android.server.wifi.EapFailureNotifier.CONFIG_EAP_FAILURE_DISA
import static com.android.server.wifi.EapFailureNotifier.CONFIG_EAP_FAILURE_DISABLE_THRESHOLD;
import static com.android.server.wifi.EapFailureNotifier.ERROR_MESSAGE_OVERLAY_PREFIX;
import static com.android.server.wifi.EapFailureNotifier.ERROR_MESSAGE_OVERLAY_UNKNOWN_ERROR_CODE;
+import static com.android.server.wifi.EapFailureNotifier.NOTIFICATION_ID;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
@@ -274,6 +275,10 @@ public class EapFailureNotifierTest extends WifiBaseTest {
verify(mFrameworkFacade, never()).makeNotificationBuilder(any(),
eq(WifiService.NOTIFICATION_NETWORK_ALERTS));
assertEquals(mExpectedEapFailureConfig, failureConfig);
+
+ // verify cancel notification works
+ mEapFailureNotifier.dismissEapFailureNotification(SSID_1);
+ verify(mWifiNotificationManager).cancel(NOTIFICATION_ID);
}
/**