From b6c2406c4c8537937e3cf8a95f7f510174fc205e Mon Sep 17 00:00:00 2001 From: Hugo Benichi Date: Tue, 9 May 2017 14:36:02 +0900 Subject: [PATCH] ConnectivityManager: simplify callback handler Bug: 36701874 Test: $ runtest frameworks-net Change-Id: I4d5f08903a54f8dced7cb6ae86703847b908b784 --- .../java/android/net/ConnectivityManager.java | 83 ++++++------------- 1 file changed, 27 insertions(+), 56 deletions(-) diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index 9a7ce5b30d..9e8acd0c47 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 getObject(Message msg, Class 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() {