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
|
* @hide
|
||||||
*/
|
*/
|
||||||
public abstract class NetworkAgent extends Handler {
|
public abstract class NetworkAgent {
|
||||||
public final Network network;
|
public final Network network;
|
||||||
|
|
||||||
|
private final Handler mHandler;
|
||||||
private volatile AsyncChannel mAsyncChannel;
|
private volatile AsyncChannel mAsyncChannel;
|
||||||
private final String LOG_TAG;
|
private final String LOG_TAG;
|
||||||
private static final boolean DBG = true;
|
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,
|
public NetworkAgent(Looper looper, Context context, String logTag, NetworkInfo ni,
|
||||||
NetworkCapabilities nc, LinkProperties lp, int score, NetworkMisc misc,
|
NetworkCapabilities nc, LinkProperties lp, int score, NetworkMisc misc,
|
||||||
int providerId) {
|
int providerId) {
|
||||||
super(looper);
|
mHandler = new NetworkAgentHandler(looper);
|
||||||
LOG_TAG = logTag;
|
LOG_TAG = logTag;
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mProviderId = providerId;
|
mProviderId = providerId;
|
||||||
@@ -243,8 +244,14 @@ public abstract class NetworkAgent extends Handler {
|
|||||||
if (VDBG) log("Registering NetworkAgent");
|
if (VDBG) log("Registering NetworkAgent");
|
||||||
ConnectivityManager cm = (ConnectivityManager)mContext.getSystemService(
|
ConnectivityManager cm = (ConnectivityManager)mContext.getSystemService(
|
||||||
Context.CONNECTIVITY_SERVICE);
|
Context.CONNECTIVITY_SERVICE);
|
||||||
network = cm.registerNetworkAgent(new Messenger(this), new NetworkInfo(ni),
|
network = cm.registerNetworkAgent(new Messenger(mHandler), new NetworkInfo(ni),
|
||||||
new LinkProperties(lp), new NetworkCapabilities(nc), score, misc, providerId);
|
new LinkProperties(lp), new NetworkCapabilities(nc), score, misc,
|
||||||
|
providerId);
|
||||||
|
}
|
||||||
|
|
||||||
|
private class NetworkAgentHandler extends Handler {
|
||||||
|
NetworkAgentHandler(Looper looper) {
|
||||||
|
super(looper);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -294,14 +301,14 @@ public abstract class NetworkAgent extends Handler {
|
|||||||
}
|
}
|
||||||
if (currentTimeMs >= (mLastBwRefreshTime + BW_REFRESH_MIN_WIN_MS)) {
|
if (currentTimeMs >= (mLastBwRefreshTime + BW_REFRESH_MIN_WIN_MS)) {
|
||||||
mPollLceScheduled = false;
|
mPollLceScheduled = false;
|
||||||
if (mPollLcePending.getAndSet(true) == false) {
|
if (!mPollLcePending.getAndSet(true)) {
|
||||||
pollLceData();
|
pollLceData();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
// deliver the request at a later time rather than discard it completely.
|
// deliver the request at a later time rather than discard it completely.
|
||||||
if (!mPollLceScheduled) {
|
if (!mPollLceScheduled) {
|
||||||
long waitTime = mLastBwRefreshTime + BW_REFRESH_MIN_WIN_MS -
|
long waitTime = mLastBwRefreshTime + BW_REFRESH_MIN_WIN_MS
|
||||||
currentTimeMs + 1;
|
- currentTimeMs + 1;
|
||||||
mPollLceScheduled = sendEmptyMessageDelayed(
|
mPollLceScheduled = sendEmptyMessageDelayed(
|
||||||
CMD_REQUEST_BANDWIDTH_UPDATE, waitTime);
|
CMD_REQUEST_BANDWIDTH_UPDATE, waitTime);
|
||||||
}
|
}
|
||||||
@@ -311,8 +318,9 @@ public abstract class NetworkAgent extends Handler {
|
|||||||
case CMD_REPORT_NETWORK_STATUS: {
|
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) {
|
if (VDBG) {
|
||||||
log("CMD_REPORT_NETWORK_STATUS(" +
|
log("CMD_REPORT_NETWORK_STATUS("
|
||||||
(msg.arg1 == VALID_NETWORK ? "VALID, " : "INVALID, ") + redirectUrl);
|
+ (msg.arg1 == VALID_NETWORK ? "VALID, " : "INVALID, ")
|
||||||
|
+ redirectUrl);
|
||||||
}
|
}
|
||||||
networkStatus(msg.arg1, redirectUrl);
|
networkStatus(msg.arg1, redirectUrl);
|
||||||
break;
|
break;
|
||||||
@@ -356,6 +364,7 @@ public abstract class NetworkAgent extends Handler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void queueOrSendMessage(int what, Object obj) {
|
private void queueOrSendMessage(int what, Object obj) {
|
||||||
queueOrSendMessage(what, 0, 0, obj);
|
queueOrSendMessage(what, 0, 0, obj);
|
||||||
|
|||||||
Reference in New Issue
Block a user