Merge "Make NetworkAgent stop subclassing Handler."
am: f1449b0ba5
Change-Id: Ie308e86e1b1173b0ec7fb7ac4a4f0b6c2bcfafa6
This commit is contained in:
@@ -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);
|
||||
}
|
||||
@@ -309,10 +316,11 @@ public abstract class NetworkAgent extends Handler {
|
||||
break;
|
||||
}
|
||||
case CMD_REPORT_NETWORK_STATUS: {
|
||||
String redirectUrl = ((Bundle)msg.obj).getString(REDIRECT_URL_KEY);
|
||||
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);
|
||||
|
||||
Reference in New Issue
Block a user