Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit be79321d authored by lucaslin's avatar lucaslin Committed by Lucas Lin
Browse files

Remove redundant connected notification

Remove the old connected notification since there is a new file
- NetworkStackNotifier.java which will send the connected
notification when captive portal validated.

Bug: 149883761
Test: 1. atest FrameworksNetTests
      2. Sign-in a captive portal and see if there is a redundant
      connected notification.

Change-Id: I4ec9d26623af4bfc65156a28a96b982466aede31
Merged-In: Id11a9b99dd04772a92af8d527104906c47bf64cd
parent 1c91a3d5
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -3449,8 +3449,6 @@
    <!-- A notification is shown when connected network without internet due to private dns validation failed. This is the notification's message. [CHAR LIMIT=NONE] -->
    <string name="private_dns_broken_detailed">Private DNS server cannot be accessed</string>

    <!-- A notification is shown after the user logs in to a captive portal network, to indicate that the network should now have internet connectivity. This is the message of notification. [CHAR LIMIT=50] -->
    <string name="captive_portal_logged_in_detailed">Connected</string>
    <!-- A notification is shown when the user connects to a network that doesn't have access to some services (e.g. Push notifications may not work). This is the notification's title. [CHAR LIMIT=50] -->
    <string name="network_partial_connectivity"><xliff:g id="network_ssid" example="GoogleGuest">%1$s</xliff:g> has limited connectivity</string>

+0 −1
Original line number Diff line number Diff line
@@ -735,7 +735,6 @@
  <java-symbol type="string" name="capability_title_canControlMagnification" />
  <java-symbol type="string" name="capability_desc_canPerformGestures" />
  <java-symbol type="string" name="capability_title_canPerformGestures" />
  <java-symbol type="string" name="captive_portal_logged_in_detailed" />
  <java-symbol type="string" name="cfTemplateForwarded" />
  <java-symbol type="string" name="cfTemplateForwardedTime" />
  <java-symbol type="string" name="cfTemplateNotForwarded" />
+4 −36
Original line number Diff line number Diff line
@@ -276,9 +276,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
    // connect anyway?" dialog after the user selects a network that doesn't validate.
    private static final int PROMPT_UNVALIDATED_DELAY_MS = 8 * 1000;

    // How long to dismiss network notification.
    private static final int TIMEOUT_NOTIFICATION_DELAY_MS = 20 * 1000;

    // Default to 30s linger time-out. Modifiable only for testing.
    private static final String LINGER_DELAY_PROPERTY = "persist.netmon.linger";
    private static final int DEFAULT_LINGER_DELAY_MS = 30_000;
@@ -525,11 +522,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
     */
    private static final int EVENT_PROVISIONING_NOTIFICATION = 43;

    /**
     * This event can handle dismissing notification by given network id.
     */
    private static final int EVENT_TIMEOUT_NOTIFICATION = 44;

    /**
     * Used to specify whether a network should be used even if connectivity is partial.
     * arg1 = whether to accept the network if its connectivity is partial (1 for true or 0 for
@@ -537,7 +529,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
     * arg2 = whether to remember this choice in the future (1 for true or 0 for false)
     * obj  = network
     */
    private static final int EVENT_SET_ACCEPT_PARTIAL_CONNECTIVITY = 45;
    private static final int EVENT_SET_ACCEPT_PARTIAL_CONNECTIVITY = 44;

    /**
     * Event for NetworkMonitor to inform ConnectivityService that the probe status has changed.
@@ -546,7 +538,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
     * arg1 = A bitmask to describe which probes are completed.
     * arg2 = A bitmask to describe which probes are successful.
     */
    public static final int EVENT_PROBE_STATUS_CHANGED = 46;
    public static final int EVENT_PROBE_STATUS_CHANGED = 45;

    /**
     * Event for NetworkMonitor to inform ConnectivityService that captive portal data has changed.
@@ -554,7 +546,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
     * arg2 = netId
     * obj = captive portal data
     */
    private static final int EVENT_CAPPORT_DATA_CHANGED = 47;
    private static final int EVENT_CAPPORT_DATA_CHANGED = 46;

    /**
     * Argument for {@link #EVENT_PROVISIONING_NOTIFICATION} to indicate that the notification
@@ -2846,13 +2838,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
            final boolean valid = ((testResult & NETWORK_VALIDATION_RESULT_VALID) != 0);
            final boolean wasValidated = nai.lastValidated;
            final boolean wasDefault = isDefaultNetwork(nai);
            // Only show a connected notification if the network is pending validation
            // after the captive portal app was open, and it has now validated.
            if (nai.captivePortalValidationPending && valid) {
                // User is now logged in, network validated.
                nai.captivePortalValidationPending = false;
                showNetworkNotification(nai, NotificationType.LOGGED_IN);
            }

            if (DBG) {
                final String logMsg = !TextUtils.isEmpty(redirectUrl)
@@ -3737,12 +3722,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
                new CaptivePortal(new CaptivePortalImpl(network).asBinder()));
        appIntent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK);

        // This runs on a random binder thread, but getNetworkAgentInfoForNetwork is thread-safe,
        // and captivePortalValidationPending is volatile.
        final NetworkAgentInfo nai = getNetworkAgentInfoForNetwork(network);
        if (nai != null) {
            nai.captivePortalValidationPending = true;
        }
        Binder.withCleanCallingIdentity(() ->
                mContext.startActivityAsUser(appIntent, UserHandle.CURRENT));
    }
@@ -3861,14 +3840,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
        final String action;
        final boolean highPriority;
        switch (type) {
            case LOGGED_IN:
                action = Settings.ACTION_WIFI_SETTINGS;
                mHandler.removeMessages(EVENT_TIMEOUT_NOTIFICATION);
                mHandler.sendMessageDelayed(mHandler.obtainMessage(EVENT_TIMEOUT_NOTIFICATION,
                        nai.network.netId, 0), TIMEOUT_NOTIFICATION_DELAY_MS);
                // High priority because it is a direct result of the user logging in to a portal.
                highPriority = true;
                break;
            case NO_INTERNET:
                action = ConnectivityManager.ACTION_PROMPT_UNVALIDATED;
                // High priority because it is only displayed for explicitly selected networks.
@@ -3896,7 +3867,7 @@ public class ConnectivityService extends IConnectivityManager.Stub
        }

        Intent intent = new Intent(action);
        if (type != NotificationType.LOGGED_IN && type != NotificationType.PRIVATE_DNS_BROKEN) {
        if (type != NotificationType.PRIVATE_DNS_BROKEN) {
            intent.setData(Uri.fromParts("netId", Integer.toString(nai.network.netId), null));
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.setClassName("com.android.settings",
@@ -4112,9 +4083,6 @@ public class ConnectivityService extends IConnectivityManager.Stub
                case EVENT_DATA_SAVER_CHANGED:
                    handleRestrictBackgroundChanged(toBool(msg.arg1));
                    break;
                case EVENT_TIMEOUT_NOTIFICATION:
                    mNotifier.clearNotification(msg.arg1, NotificationType.LOGGED_IN);
                    break;
            }
        }
    }
+0 −5
Original line number Diff line number Diff line
@@ -161,10 +161,6 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> {
    // Whether a captive portal was found during the last network validation attempt.
    public boolean lastCaptivePortalDetected;

    // Indicates the captive portal app was opened to show a login UI to the user, but the network
    // has not validated yet.
    public volatile boolean captivePortalValidationPending;

    // Set to true when partial connectivity was detected.
    public boolean partialConnectivity;

@@ -646,7 +642,6 @@ public class NetworkAgentInfo implements Comparable<NetworkAgentInfo> {
                + "acceptUnvalidated{" + networkAgentConfig.acceptUnvalidated + "} "
                + "everCaptivePortalDetected{" + everCaptivePortalDetected + "} "
                + "lastCaptivePortalDetected{" + lastCaptivePortalDetected + "} "
                + "captivePortalValidationPending{" + captivePortalValidationPending + "} "
                + "partialConnectivity{" + partialConnectivity + "} "
                + "acceptPartialConnectivity{" + networkAgentConfig.acceptPartialConnectivity + "} "
                + "clat{" + clatd + "} "
+5 −14
Original line number Diff line number Diff line
@@ -51,7 +51,6 @@ public class NetworkNotificationManager {
        LOST_INTERNET(SystemMessage.NOTE_NETWORK_LOST_INTERNET),
        NETWORK_SWITCH(SystemMessage.NOTE_NETWORK_SWITCH),
        NO_INTERNET(SystemMessage.NOTE_NETWORK_NO_INTERNET),
        LOGGED_IN(SystemMessage.NOTE_NETWORK_LOGGED_IN),
        PARTIAL_CONNECTIVITY(SystemMessage.NOTE_NETWORK_PARTIAL_CONNECTIVITY),
        SIGN_IN(SystemMessage.NOTE_NETWORK_SIGN_IN),
        PRIVATE_DNS_BROKEN(SystemMessage.NOTE_NETWORK_PRIVATE_DNS_BROKEN);
@@ -114,14 +113,10 @@ public class NetworkNotificationManager {
        }
    }

    private static int getIcon(int transportType, NotificationType notifyType) {
        if (transportType != TRANSPORT_WIFI) {
            return R.drawable.stat_notify_rssi_in_range;
        }

        return notifyType == NotificationType.LOGGED_IN
            ? R.drawable.ic_wifi_signal_4
            : R.drawable.stat_notify_wifi_in_range;  // TODO: Distinguish ! from ?.
    private static int getIcon(int transportType) {
        return (transportType == TRANSPORT_WIFI)
                ? R.drawable.stat_notify_wifi_in_range :  // TODO: Distinguish ! from ?.
                R.drawable.stat_notify_rssi_in_range;
    }

    /**
@@ -185,7 +180,7 @@ public class NetworkNotificationManager {
        Resources r = mContext.getResources();
        final CharSequence title;
        final CharSequence details;
        int icon = getIcon(transportType, notifyType);
        int icon = getIcon(transportType);
        if (notifyType == NotificationType.NO_INTERNET && transportType == TRANSPORT_WIFI) {
            title = r.getString(R.string.wifi_no_internet,
                    WifiInfo.sanitizeSsid(nai.networkCapabilities.getSSID()));
@@ -235,9 +230,6 @@ public class NetworkNotificationManager {
                    details = r.getString(R.string.network_available_sign_in_detailed, name);
                    break;
            }
        } else if (notifyType == NotificationType.LOGGED_IN) {
            title = WifiInfo.sanitizeSsid(nai.networkCapabilities.getSSID());
            details = r.getString(R.string.captive_portal_logged_in_detailed);
        } else if (notifyType == NotificationType.NETWORK_SWITCH) {
            String fromTransport = getTransportName(transportType);
            String toTransport = getTransportName(approximateTransportType(switchToNai));
@@ -379,7 +371,6 @@ public class NetworkNotificationManager {
            case NETWORK_SWITCH:
                return 2;
            case LOST_INTERNET:
            case LOGGED_IN:
                return 1;
            default:
                return 0;
Loading