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

Commit a11ae54b authored by Chiachang Wang's avatar Chiachang Wang Committed by Gerrit Code Review
Browse files

Merge "Make NetworkAgent stop subclassing Handler."

parents b8dd5bcc 71aee278
Loading
Loading
Loading
Loading
+108 −99
Original line number Diff line number Diff line
@@ -43,9 +43,10 @@ import java.util.concurrent.atomic.AtomicBoolean;
 *
 * @hide
 */
public abstract class NetworkAgent extends Handler {
public abstract class NetworkAgent {
    public final Network network;

    private final Handler mHandler;
    private volatile AsyncChannel mAsyncChannel;
    private final String LOG_TAG;
    private static final boolean DBG = true;
@@ -232,7 +233,7 @@ public abstract class NetworkAgent extends Handler {
    public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
            NetworkCapabilities nc, LinkProperties lp, int score, NetworkMisc misc,
            int providerId) {
        super(looper);
        mHandler = new NetworkAgentHandler(looper);
        LOG_TAG = logTag;
        mContext = context;
        mProviderId = providerId;
@@ -243,8 +244,14 @@ public abstract class NetworkAgent extends Handler {
        if (VDBG) log("Registering NetworkAgent");
        ConnectivityManager cm = (ConnectivityManager)mContext.getSystemService(
                Context.CONNECTIVITY_SERVICE);
        network = cm.registerNetworkAgent(new Messenger(this), new NetworkInfo(ni),
                new LinkProperties(lp), new NetworkCapabilities(nc), score, misc, providerId);
        network = cm.registerNetworkAgent(new Messenger(mHandler), new NetworkInfo(ni),
                new LinkProperties(lp), new NetworkCapabilities(nc), score, misc,
                providerId);
    }

    private class NetworkAgentHandler extends Handler {
        NetworkAgentHandler(Looper looper) {
            super(looper);
        }

        @Override
@@ -294,14 +301,14 @@ public abstract class NetworkAgent extends Handler {
                    }
                    if (currentTimeMs >= (mLastBwRefreshTime + BW_REFRESH_MIN_WIN_MS)) {
                        mPollLceScheduled = false;
                    if (mPollLcePending.getAndSet(true) == false) {
                        if (!mPollLcePending.getAndSet(true)) {
                            pollLceData();
                        }
                    } else {
                        // deliver the request at a later time rather than discard it completely.
                        if (!mPollLceScheduled) {
                        long waitTime = mLastBwRefreshTime + BW_REFRESH_MIN_WIN_MS -
                                currentTimeMs + 1;
                            long waitTime = mLastBwRefreshTime + BW_REFRESH_MIN_WIN_MS
                                    - currentTimeMs + 1;
                            mPollLceScheduled = sendEmptyMessageDelayed(
                                    CMD_REQUEST_BANDWIDTH_UPDATE, waitTime);
                        }
@@ -311,8 +318,9 @@ public abstract class NetworkAgent extends Handler {
                case CMD_REPORT_NETWORK_STATUS: {
                    String redirectUrl = ((Bundle) msg.obj).getString(REDIRECT_URL_KEY);
                    if (VDBG) {
                    log("CMD_REPORT_NETWORK_STATUS(" +
                            (msg.arg1 == VALID_NETWORK ? "VALID, " : "INVALID, ") + redirectUrl);
                        log("CMD_REPORT_NETWORK_STATUS("
                                + (msg.arg1 == VALID_NETWORK ? "VALID, " : "INVALID, ")
                                + redirectUrl);
                    }
                    networkStatus(msg.arg1, redirectUrl);
                    break;
@@ -356,6 +364,7 @@ public abstract class NetworkAgent extends Handler {
                }
            }
        }
    }

    private void queueOrSendMessage(int what, Object obj) {
        queueOrSendMessage(what, 0, 0, obj);