summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteve Kondik <shade@chemlab.org>2010-07-24 12:53:52 -0400
committerSteve Kondik <shade@chemlab.org>2010-07-24 12:53:52 -0400
commit50ee2ce8c35f163b778ad33a31c3aca8e905e97c (patch)
tree062092064b6ed88015120f5804edf3f3306d5b93
parenta7fd5d7e87aafcdb76e32458a091cbe380928807 (diff)
downloadframeworks_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.java3
-rw-r--r--core/java/android/net/NetworkInfo.java9
-rw-r--r--services/java/com/android/server/ConnectivityService.java6
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)