From 04e50f8608fec0149f412db85b13a33ca3deba89 Mon Sep 17 00:00:00 2001 From: lucaslin Date: Mon, 8 Apr 2019 10:52:46 +0800 Subject: [PATCH] Prevent SIGN_IN notification pop up several times SIGN_IN notification may pop up several times before user logged in the network if someone trigger ConnectivityService#reportNetworkConnectivity(). Add a boolean to make sure SIGN_IN notification will only pop up once to user before user logged in. Bug: b/122164725 Test: Build pass. Change-Id: I9c7f1d47fde8e5dfadd6646497023b05f3b0ed88 --- .../src/com/android/server/connectivity/NetworkMonitor.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java b/packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java index c000fc6b721d8..969a6a0219aa7 100644 --- a/packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java +++ b/packages/NetworkStack/src/com/android/server/connectivity/NetworkMonitor.java @@ -790,6 +790,7 @@ public class NetworkMonitor extends StateMachine { @Override public void exit() { + mLaunchCaptivePortalAppBroadcastReceiver = null; hideProvisioningNotification(); } } @@ -913,9 +914,10 @@ public class NetworkMonitor extends StateMachine { mLaunchCaptivePortalAppBroadcastReceiver = new CustomIntentReceiver( ACTION_LAUNCH_CAPTIVE_PORTAL_APP, new Random().nextInt(), CMD_LAUNCH_CAPTIVE_PORTAL_APP); + // Display the sign in notification. + // Only do this once for every time we enter MaybeNotifyState. b/122164725 + showProvisioningNotification(mLaunchCaptivePortalAppBroadcastReceiver.mAction); } - // Display the sign in notification. - showProvisioningNotification(mLaunchCaptivePortalAppBroadcastReceiver.mAction); // Retest for captive portal occasionally. sendMessageDelayed(CMD_CAPTIVE_PORTAL_RECHECK, 0 /* no UID */, CAPTIVE_PORTAL_REEVALUATE_DELAY_MS);