summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIrfan Sheriff <isheriff@google.com>2010-01-20 13:26:08 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-01-20 13:26:08 -0800
commit48ef378d01b3ace349cbb6ba564276b854d872c9 (patch)
treea2f8b5768d6a9d80e54a4cb2671355d661d21809
parent1a337547d5377c57dbb10a24d4d73ad6bda829ea (diff)
parent0fe3f7cbbf769b80cd5ee549bbd0f7723f4d9312 (diff)
downloadframeworks_base-48ef378d01b3ace349cbb6ba564276b854d872c9.zip
frameworks_base-48ef378d01b3ace349cbb6ba564276b854d872c9.tar.gz
frameworks_base-48ef378d01b3ace349cbb6ba564276b854d872c9.tar.bz2
Merge "DO NOT MERGE Avoid wifi disable in a UNKNOWN state" into eclair
-rw-r--r--services/java/com/android/server/WifiService.java11
1 files changed, 11 insertions, 0 deletions
diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java
index b29e769..3a08e4d 100644
--- a/services/java/com/android/server/WifiService.java
+++ b/services/java/com/android/server/WifiService.java
@@ -329,6 +329,17 @@ public class WifiService extends IWifiManager.Stub {
return false;
}
+ /**
+ * Multiple calls to unregisterReceiver() cause exception and a system crash.
+ * This can happen if a supplicant is lost (or firmware crash occurs) and user indicates
+ * disable wifi at the same time.
+ * Avoid doing a disable when the current Wifi state is UNKNOWN
+ * TODO: Handle driver load fail and supplicant lost as seperate states
+ */
+ if (mWifiState == WIFI_STATE_UNKNOWN && !enable) {
+ return false;
+ }
+
setWifiEnabledState(enable ? WIFI_STATE_ENABLING : WIFI_STATE_DISABLING, uid);
if (enable) {