diff options
| -rw-r--r-- | core/java/android/net/ConnectivityManager.java | 83 |
1 files changed, 27 insertions, 56 deletions
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index 9a7ce5b30d88..9e8acd0c47ad 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -2773,79 +2773,62 @@ public class ConnectivityManager { @Override public void handleMessage(Message message) { - NetworkRequest request = getObject(message, NetworkRequest.class); - Network network = getObject(message, Network.class); + if (message.what == EXPIRE_LEGACY_REQUEST) { + 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) { 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) { case CALLBACK_PRECHECK: { - NetworkCallback callback = getCallback(message); - if (callback != null) { - callback.onPreCheck(network); - } + callback.onPreCheck(network); break; } case CALLBACK_AVAILABLE: { - NetworkCallback callback = getCallback(message); - if (callback != null) { - callback.onAvailable(network); - } + callback.onAvailable(network); break; } case CALLBACK_LOSING: { - NetworkCallback callback = getCallback(message); - if (callback != null) { - callback.onLosing(network, message.arg1); - } + callback.onLosing(network, message.arg1); break; } case CALLBACK_LOST: { - NetworkCallback callback = getCallback(message); - if (callback != null) { - callback.onLost(network); - } + callback.onLost(network); break; } case CALLBACK_UNAVAIL: { - NetworkCallback callback = getCallback(message); - if (callback != null) { - callback.onUnavailable(); - } + callback.onUnavailable(); break; } case CALLBACK_CAP_CHANGED: { - NetworkCallback callback = getCallback(message); - if (callback != null) { - NetworkCapabilities cap = getObject(message, NetworkCapabilities.class); - callback.onCapabilitiesChanged(network, cap); - } + NetworkCapabilities cap = getObject(message, NetworkCapabilities.class); + callback.onCapabilitiesChanged(network, cap); break; } case CALLBACK_IP_CHANGED: { - NetworkCallback callback = getCallback(message); - if (callback != null) { - LinkProperties lp = getObject(message, LinkProperties.class); - callback.onLinkPropertiesChanged(network, lp); - } + LinkProperties lp = getObject(message, LinkProperties.class); + callback.onLinkPropertiesChanged(network, lp); break; } case CALLBACK_SUSPENDED: { - NetworkCallback callback = getCallback(message); - if (callback != null) { - callback.onNetworkSuspended(network); - } + callback.onNetworkSuspended(network); break; } case CALLBACK_RESUMED: { - NetworkCallback callback = getCallback(message); - if (callback != null) { - callback.onNetworkResumed(network); - } - break; - } - case EXPIRE_LEGACY_REQUEST: { - expireRequest((NetworkCapabilities)message.obj, message.arg1); + callback.onNetworkResumed(network); break; } } @@ -2854,18 +2837,6 @@ public class ConnectivityManager { private <T> T getObject(Message msg, Class<T> c) { 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() { |