summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorRobert Greenwalt <rgreenwalt@google.com>2014-10-03 15:41:04 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-10-03 15:41:04 +0000
commit3515ab8092719ea9f61c8c2859bf586aed0955e3 (patch)
tree7e30791b7103a85e3e9f2c87b20ca420e3a01cbf /core/java/android
parent7da91cc21f0f77277d76001af9133de3923ba686 (diff)
parent24861eabe641d5a147f127c8e7f98fab949224ab (diff)
downloadframeworks_base-3515ab8092719ea9f61c8c2859bf586aed0955e3.zip
frameworks_base-3515ab8092719ea9f61c8c2859bf586aed0955e3.tar.gz
frameworks_base-3515ab8092719ea9f61c8c2859bf586aed0955e3.tar.bz2
am 24861eab: Merge "Send callbacks for Net property changes" into lmp-dev
* commit '24861eabe641d5a147f127c8e7f98fab949224ab': Send callbacks for Net property changes
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/net/ConnectivityManager.java63
1 files changed, 33 insertions, 30 deletions
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index 2e24785..9194ca8 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -25,6 +25,7 @@ import android.content.Intent;
import android.net.NetworkUtils;
import android.os.Binder;
import android.os.Build.VERSION_CODES;
+import android.os.Bundle;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.IBinder;
@@ -2147,50 +2148,57 @@ public class ConnectivityManager {
Log.d(TAG, "CM callback handler got msg " + message.what);
switch (message.what) {
case CALLBACK_PRECHECK: {
- NetworkRequest request = getNetworkRequest(message);
+ NetworkRequest request = (NetworkRequest)getObject(message,
+ NetworkRequest.class);
NetworkCallback callbacks = getCallbacks(request);
if (callbacks != null) {
- callbacks.onPreCheck(getNetwork(message));
+ callbacks.onPreCheck((Network)getObject(message, Network.class));
} else {
Log.e(TAG, "callback not found for PRECHECK message");
}
break;
}
case CALLBACK_AVAILABLE: {
- NetworkRequest request = getNetworkRequest(message);
+ NetworkRequest request = (NetworkRequest)getObject(message,
+ NetworkRequest.class);
NetworkCallback callbacks = getCallbacks(request);
if (callbacks != null) {
- callbacks.onAvailable(getNetwork(message));
+ callbacks.onAvailable((Network)getObject(message, Network.class));
} else {
Log.e(TAG, "callback not found for AVAILABLE message");
}
break;
}
case CALLBACK_LOSING: {
- NetworkRequest request = getNetworkRequest(message);
+ NetworkRequest request = (NetworkRequest)getObject(message,
+ NetworkRequest.class);
NetworkCallback callbacks = getCallbacks(request);
if (callbacks != null) {
- callbacks.onLosing(getNetwork(message), message.arg1);
+ callbacks.onLosing((Network)getObject(message, Network.class),
+ message.arg1);
} else {
Log.e(TAG, "callback not found for LOSING message");
}
break;
}
case CALLBACK_LOST: {
- NetworkRequest request = getNetworkRequest(message);
+ NetworkRequest request = (NetworkRequest)getObject(message,
+ NetworkRequest.class);
+
NetworkCallback callbacks = getCallbacks(request);
if (callbacks != null) {
- callbacks.onLost(getNetwork(message));
+ callbacks.onLost((Network)getObject(message, Network.class));
} else {
Log.e(TAG, "callback not found for LOST message");
}
break;
}
case CALLBACK_UNAVAIL: {
- NetworkRequest req = (NetworkRequest)message.obj;
+ NetworkRequest request = (NetworkRequest)getObject(message,
+ NetworkRequest.class);
NetworkCallback callbacks = null;
synchronized(mCallbackMap) {
- callbacks = mCallbackMap.get(req);
+ callbacks = mCallbackMap.get(request);
}
if (callbacks != null) {
callbacks.onUnavailable();
@@ -2200,33 +2208,37 @@ public class ConnectivityManager {
break;
}
case CALLBACK_CAP_CHANGED: {
- NetworkRequest request = getNetworkRequest(message);
+ NetworkRequest request = (NetworkRequest)getObject(message,
+ NetworkRequest.class);
NetworkCallback callbacks = getCallbacks(request);
if (callbacks != null) {
- Network network = getNetwork(message);
- NetworkCapabilities cap = mCm.getNetworkCapabilities(network);
+ Network network = (Network)getObject(message, Network.class);
+ NetworkCapabilities cap = (NetworkCapabilities)getObject(message,
+ NetworkCapabilities.class);
callbacks.onCapabilitiesChanged(network, cap);
} else {
- Log.e(TAG, "callback not found for CHANGED message");
+ Log.e(TAG, "callback not found for CAP_CHANGED message");
}
break;
}
case CALLBACK_IP_CHANGED: {
- NetworkRequest request = getNetworkRequest(message);
+ NetworkRequest request = (NetworkRequest)getObject(message,
+ NetworkRequest.class);
NetworkCallback callbacks = getCallbacks(request);
if (callbacks != null) {
- Network network = getNetwork(message);
- LinkProperties lp = mCm.getLinkProperties(network);
+ Network network = (Network)getObject(message, Network.class);
+ LinkProperties lp = (LinkProperties)getObject(message,
+ LinkProperties.class);
callbacks.onLinkPropertiesChanged(network, lp);
} else {
- Log.e(TAG, "callback not found for CHANGED message");
+ Log.e(TAG, "callback not found for IP_CHANGED message");
}
break;
}
case CALLBACK_RELEASED: {
- NetworkRequest req = (NetworkRequest)message.obj;
+ NetworkRequest req = (NetworkRequest)getObject(message, NetworkRequest.class);
NetworkCallback callbacks = null;
synchronized(mCallbackMap) {
callbacks = mCallbackMap.remove(req);
@@ -2254,23 +2266,14 @@ public class ConnectivityManager {
}
}
- private NetworkRequest getNetworkRequest(Message msg) {
- return (NetworkRequest)(msg.obj);
+ private Object getObject(Message msg, Class c) {
+ return msg.getData().getParcelable(c.getSimpleName());
}
private NetworkCallback getCallbacks(NetworkRequest req) {
synchronized(mCallbackMap) {
return mCallbackMap.get(req);
}
}
- private Network getNetwork(Message msg) {
- return new Network(msg.arg2);
- }
- private NetworkCallback removeCallbacks(Message msg) {
- NetworkRequest req = (NetworkRequest)msg.obj;
- synchronized(mCallbackMap) {
- return mCallbackMap.remove(req);
- }
- }
}
private void incCallbackHandlerRefCount() {