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

Commit 30813942 authored by Paul Jensen's avatar Paul Jensen Committed by Android (Google) Code Review
Browse files

Merge "Disable WiFi autojoin when user decides via "Stay connected?" dialog" into mnc-dev

parents 7157c2ca f95d2203
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -148,6 +148,13 @@ public abstract class NetworkAgent extends Handler {
     */
    public static final int CMD_REQUEST_BANDWIDTH_UPDATE = BASE + 10;

    /**
     * Sent by ConnectivityService to the NeworkAgent to inform the agent to avoid
     * automatically reconnecting to this network (e.g. via autojoin).  Happens
     * when user selects "No" option on the "Stay connected?" dialog box.
     */
    public static final int CMD_PREVENT_AUTOMATIC_RECONNECT = BASE + 11;

    public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
            NetworkCapabilities nc, LinkProperties lp, int score) {
        this(looper, context, logTag, ni, nc, lp, score, null);
@@ -240,6 +247,11 @@ public abstract class NetworkAgent extends Handler {
            }
            case CMD_SAVE_ACCEPT_UNVALIDATED: {
                saveAcceptUnvalidated(msg.arg1 != 0);
                break;
            }
            case CMD_PREVENT_AUTOMATIC_RECONNECT: {
                preventAutomaticReconnect();
                break;
            }
        }
    }
@@ -365,6 +377,15 @@ public abstract class NetworkAgent extends Handler {
    protected void saveAcceptUnvalidated(boolean accept) {
    }

    /**
     * Called when the user asks to not stay connected to this network because it was found to not
     * provide Internet access.  Usually followed by call to {@code unwanted}.  The transport is
     * responsible for making sure the device does not automatically reconnect to the same network
     * after the {@code unwanted} call.
     */
    protected void preventAutomaticReconnect() {
    }

    protected void log(String s) {
        Log.d(LOG_TAG, "NetworkAgent: " + s);
    }
+4 −8
Original line number Diff line number Diff line
@@ -2378,14 +2378,10 @@ public class ConnectivityService extends IConnectivityManager.Stub
        }

        if (!accept) {
            // Tell the NetworkAgent that the network does not have Internet access (because that's
            // what we just told the user). This will hint to Wi-Fi not to autojoin this network in
            // the future. We do this now because NetworkMonitor might not yet have finished
            // validating and thus we might not yet have received an EVENT_NETWORK_TESTED.
            nai.asyncChannel.sendMessage(NetworkAgent.CMD_REPORT_NETWORK_STATUS,
                    NetworkAgent.INVALID_NETWORK, 0, null);
            // TODO: Tear the network down once we have determined how to tell WifiStateMachine not
            // to reconnect to it immediately. http://b/20739299
            // Tell the NetworkAgent to not automatically reconnect to the network.
            nai.asyncChannel.sendMessage(NetworkAgent.CMD_PREVENT_AUTOMATIC_RECONNECT);
            // Teardown the nework.
            teardownUnneededNetwork(nai);
        }

    }