OSDN Git Service

Don't put up wifi-available note when disabled
authorRobert Greenwalt <rgreenwalt@google.com>
Tue, 21 May 2013 18:17:11 +0000 (11:17 -0700)
committerRobert Greenwalt <rgreenwalt@google.com>
Tue, 21 May 2013 18:17:11 +0000 (11:17 -0700)
With the new scan-always mode we will get scan results when disabled.
Don't tell the user about open AP when they've turned off wifi.

bug:9067982
Change-Id: I7a303c2a6f87a331443eeb54fa8ff5b467c0a1ff

services/java/com/android/server/wifi/WifiNotificationController.java

index 17ef7c8..a9206e0 100644 (file)
@@ -91,10 +91,12 @@ final class WifiNotificationController {
     private final Context mContext;
     private final WifiStateMachine mWifiStateMachine;
     private NetworkInfo mNetworkInfo;
+    private volatile int mWifiState;
 
     WifiNotificationController(Context context, WifiStateMachine wsm) {
         mContext = context;
         mWifiStateMachine = wsm;
+        mWifiState = WifiManager.WIFI_STATE_UNKNOWN;
 
         IntentFilter filter = new IntentFilter();
         filter.addAction(WifiManager.WIFI_STATE_CHANGED_ACTION);
@@ -106,6 +108,8 @@ final class WifiNotificationController {
                     @Override
                     public void onReceive(Context context, Intent intent) {
                         if (intent.getAction().equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) {
+                            mWifiState = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,
+                                    WifiManager.WIFI_STATE_UNKNOWN);
                             resetNotification();
                         } else if (intent.getAction().equals(
                                 WifiManager.NETWORK_STATE_CHANGED_ACTION)) {
@@ -141,6 +145,7 @@ final class WifiNotificationController {
         // don't bother doing any of the following
         if (!mNotificationEnabled) return;
         if (networkInfo == null) return;
+        if (mWifiState != WifiManager.WIFI_STATE_ENABLED) return;
 
         NetworkInfo.State state = networkInfo.getState();
         if ((state == NetworkInfo.State.DISCONNECTED)