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

Commit 208944c5 authored by fenglu's avatar fenglu Committed by Android Git Automerger
Browse files

am bd5a0645: am ffb4b83a: am 22c228f2: Merge "LCE feature enhancement" into mnc-dev

* commit 'bd5a0645':
  LCE feature enhancement
parents ef7d034a bd5a0645
Loading
Loading
Loading
Loading
+18 −2
Original line number Diff line number Diff line
@@ -27,6 +27,7 @@ import com.android.internal.util.AsyncChannel;
import com.android.internal.util.Protocol;

import java.util.ArrayList;
import java.util.concurrent.atomic.AtomicBoolean;

/**
 * A Utility class for handling for communicating between bearer-specific
@@ -51,6 +52,8 @@ public abstract class NetworkAgent extends Handler {
    private final ArrayList<Message>mPreConnectedQueue = new ArrayList<Message>();
    private volatile long mLastBwRefreshTime = 0;
    private static final long BW_REFRESH_MIN_WIN_MS = 500;
    private boolean mPollLceScheduled = false;
    private AtomicBoolean mPollLcePending = new AtomicBoolean(false);

    private static final int BASE = Protocol.BASE_NETWORK_AGENT;

@@ -207,12 +210,24 @@ public abstract class NetworkAgent extends Handler {
                break;
            }
            case CMD_REQUEST_BANDWIDTH_UPDATE: {
                long currentTimeMs = System.currentTimeMillis();
                if (VDBG) {
                    log("CMD_REQUEST_BANDWIDTH_UPDATE request received.");
                }
                if (System.currentTimeMillis() > (mLastBwRefreshTime + BW_REFRESH_MIN_WIN_MS)) {
                if (currentTimeMs >= (mLastBwRefreshTime + BW_REFRESH_MIN_WIN_MS)) {
                    mPollLceScheduled = false;
                    if (mPollLcePending.getAndSet(true) == false) {
                        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;
                        mPollLceScheduled = sendEmptyMessageDelayed(
                                CMD_REQUEST_BANDWIDTH_UPDATE, waitTime);
                    }
                }
                break;
            }
            case CMD_REPORT_NETWORK_STATUS: {
@@ -260,6 +275,7 @@ public abstract class NetworkAgent extends Handler {
     * Called by the bearer code when it has new NetworkCapabilities data.
     */
    public void sendNetworkCapabilities(NetworkCapabilities networkCapabilities) {
        mPollLcePending.set(false);
        mLastBwRefreshTime = System.currentTimeMillis();
        queueOrSendMessage(EVENT_NETWORK_CAPABILITIES_CHANGED,
                new NetworkCapabilities(networkCapabilities));