diff options
author | Steve Kondik <shade@chemlab.org> | 2010-07-24 12:53:52 -0400 |
---|---|---|
committer | Steve Kondik <shade@chemlab.org> | 2010-07-24 12:53:52 -0400 |
commit | 50ee2ce8c35f163b778ad33a31c3aca8e905e97c (patch) | |
tree | 062092064b6ed88015120f5804edf3f3306d5b93 | |
parent | a7fd5d7e87aafcdb76e32458a091cbe380928807 (diff) | |
download | frameworks_base-50ee2ce8c35f163b778ad33a31c3aca8e905e97c.zip frameworks_base-50ee2ce8c35f163b778ad33a31c3aca8e905e97c.tar.gz frameworks_base-50ee2ce8c35f163b778ad33a31c3aca8e905e97c.tar.bz2 |
HACK - workaround for apps that NPE when getting wimax network info.
Since Wimax isn't supported yet, we need to keep userspace happy on the
Evo when bad assumptions are made.
-rw-r--r-- | core/java/android/net/ConnectivityManager.java | 3 | ||||
-rw-r--r-- | core/java/android/net/NetworkInfo.java | 9 | ||||
-rw-r--r-- | services/java/com/android/server/ConnectivityService.java | 6 |
3 files changed, 17 insertions, 1 deletions
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java index 280ded6..daf86c8 100644 --- a/core/java/android/net/ConnectivityManager.java +++ b/core/java/android/net/ConnectivityManager.java @@ -200,7 +200,8 @@ public class ConnectivityManager private IConnectivityManager mService; static public boolean isNetworkTypeValid(int networkType) { - return networkType >= 0 && networkType <= MAX_NETWORK_TYPE; + // HACK! Accept TYPE_WIMAX even though we don't support it yet + return TYPE_WIMAX == networkType || (networkType >= 0 && networkType <= MAX_NETWORK_TYPE); } public void setNetworkPreference(int preference) { diff --git a/core/java/android/net/NetworkInfo.java b/core/java/android/net/NetworkInfo.java index 649cb8c..cfb4b30 100644 --- a/core/java/android/net/NetworkInfo.java +++ b/core/java/android/net/NetworkInfo.java @@ -373,4 +373,13 @@ public class NetworkInfo implements Parcelable { return new NetworkInfo[size]; } }; + + /** + * HACK! Get an empty NetworkInfo object for WIMAX stub + * @hide + */ + public static final NetworkInfo getEmptyWimaxNetworkInfo() { + return new NetworkInfo(ConnectivityManager.TYPE_WIMAX, 0, "", ""); + } + } diff --git a/services/java/com/android/server/ConnectivityService.java b/services/java/com/android/server/ConnectivityService.java index 81b8d40..5c8ee53 100644 --- a/services/java/com/android/server/ConnectivityService.java +++ b/services/java/com/android/server/ConnectivityService.java @@ -430,6 +430,12 @@ public class ConnectivityService extends IConnectivityManager.Stub { public NetworkInfo getNetworkInfo(int networkType) { enforceAccessPermission(); + + // HACK! - return a stub NetworkInfo object to make bad apps happy. + if (ConnectivityManager.TYPE_WIMAX == networkType) { + return NetworkInfo.getEmptyWimaxNetworkInfo(); + } + if (ConnectivityManager.isNetworkTypeValid(networkType)) { NetworkStateTracker t = mNetTrackers[networkType]; if (t != null) |