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
Merged-In: I9c7f1d47fde8e5dfadd6646497023b05f3b0ed88
This commit is contained in:
lucaslin
2019-04-08 15:47:25 +08:00
parent 835f260d60
commit 2b14c799b8

View File

@@ -779,6 +779,7 @@ public class NetworkMonitor extends StateMachine {
@Override
public void exit() {
mLaunchCaptivePortalAppBroadcastReceiver = null;
hideProvisioningNotification();
}
}
@@ -902,9 +903,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);