Merge "ConnectivityManager: simplify callback handler" am: 5e6af581e4 am: 7bce658dd6
am: a67fb638fa Change-Id: I3934666df4a02101351993f7f83fb0a42124a2f5
This commit is contained in:
@@ -2766,79 +2766,62 @@ public class ConnectivityManager {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleMessage(Message message) {
|
public void handleMessage(Message message) {
|
||||||
NetworkRequest request = getObject(message, NetworkRequest.class);
|
if (message.what == EXPIRE_LEGACY_REQUEST) {
|
||||||
Network network = getObject(message, Network.class);
|
expireRequest((NetworkCapabilities) message.obj, message.arg1);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
final NetworkRequest request = getObject(message, NetworkRequest.class);
|
||||||
|
final Network network = getObject(message, Network.class);
|
||||||
|
final NetworkCallback callback;
|
||||||
|
synchronized (sCallbacks) {
|
||||||
|
callback = sCallbacks.get(request);
|
||||||
|
}
|
||||||
if (DBG) {
|
if (DBG) {
|
||||||
Log.d(TAG, getCallbackName(message.what) + " for network " + network);
|
Log.d(TAG, getCallbackName(message.what) + " for network " + network);
|
||||||
}
|
}
|
||||||
|
if (callback == null) {
|
||||||
|
Log.w(TAG, "callback not found for " + getCallbackName(message.what) + " message");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
switch (message.what) {
|
switch (message.what) {
|
||||||
case CALLBACK_PRECHECK: {
|
case CALLBACK_PRECHECK: {
|
||||||
NetworkCallback callback = getCallback(message);
|
callback.onPreCheck(network);
|
||||||
if (callback != null) {
|
|
||||||
callback.onPreCheck(network);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CALLBACK_AVAILABLE: {
|
case CALLBACK_AVAILABLE: {
|
||||||
NetworkCallback callback = getCallback(message);
|
callback.onAvailable(network);
|
||||||
if (callback != null) {
|
|
||||||
callback.onAvailable(network);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CALLBACK_LOSING: {
|
case CALLBACK_LOSING: {
|
||||||
NetworkCallback callback = getCallback(message);
|
callback.onLosing(network, message.arg1);
|
||||||
if (callback != null) {
|
|
||||||
callback.onLosing(network, message.arg1);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CALLBACK_LOST: {
|
case CALLBACK_LOST: {
|
||||||
NetworkCallback callback = getCallback(message);
|
callback.onLost(network);
|
||||||
if (callback != null) {
|
|
||||||
callback.onLost(network);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CALLBACK_UNAVAIL: {
|
case CALLBACK_UNAVAIL: {
|
||||||
NetworkCallback callback = getCallback(message);
|
callback.onUnavailable();
|
||||||
if (callback != null) {
|
|
||||||
callback.onUnavailable();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CALLBACK_CAP_CHANGED: {
|
case CALLBACK_CAP_CHANGED: {
|
||||||
NetworkCallback callback = getCallback(message);
|
NetworkCapabilities cap = getObject(message, NetworkCapabilities.class);
|
||||||
if (callback != null) {
|
callback.onCapabilitiesChanged(network, cap);
|
||||||
NetworkCapabilities cap = getObject(message, NetworkCapabilities.class);
|
|
||||||
callback.onCapabilitiesChanged(network, cap);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CALLBACK_IP_CHANGED: {
|
case CALLBACK_IP_CHANGED: {
|
||||||
NetworkCallback callback = getCallback(message);
|
LinkProperties lp = getObject(message, LinkProperties.class);
|
||||||
if (callback != null) {
|
callback.onLinkPropertiesChanged(network, lp);
|
||||||
LinkProperties lp = getObject(message, LinkProperties.class);
|
|
||||||
callback.onLinkPropertiesChanged(network, lp);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CALLBACK_SUSPENDED: {
|
case CALLBACK_SUSPENDED: {
|
||||||
NetworkCallback callback = getCallback(message);
|
callback.onNetworkSuspended(network);
|
||||||
if (callback != null) {
|
|
||||||
callback.onNetworkSuspended(network);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case CALLBACK_RESUMED: {
|
case CALLBACK_RESUMED: {
|
||||||
NetworkCallback callback = getCallback(message);
|
callback.onNetworkResumed(network);
|
||||||
if (callback != null) {
|
|
||||||
callback.onNetworkResumed(network);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case EXPIRE_LEGACY_REQUEST: {
|
|
||||||
expireRequest((NetworkCapabilities)message.obj, message.arg1);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2847,18 +2830,6 @@ public class ConnectivityManager {
|
|||||||
private <T> T getObject(Message msg, Class<T> c) {
|
private <T> T getObject(Message msg, Class<T> c) {
|
||||||
return (T) msg.getData().getParcelable(c.getSimpleName());
|
return (T) msg.getData().getParcelable(c.getSimpleName());
|
||||||
}
|
}
|
||||||
|
|
||||||
private NetworkCallback getCallback(Message msg) {
|
|
||||||
final NetworkRequest req = getObject(msg, NetworkRequest.class);
|
|
||||||
final NetworkCallback callback;
|
|
||||||
synchronized(sCallbacks) {
|
|
||||||
callback = sCallbacks.get(req);
|
|
||||||
}
|
|
||||||
if (callback == null) {
|
|
||||||
Log.w(TAG, "callback not found for " + getCallbackName(msg.what) + " message");
|
|
||||||
}
|
|
||||||
return callback;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private CallbackHandler getDefaultHandler() {
|
private CallbackHandler getDefaultHandler() {
|
||||||
|
|||||||
Reference in New Issue
Block a user