DO NOT MERGE Enable all networks on screen on

Connectivity to a disabled network never happens.
An old dhcp issue for example prevents
connectivity again in future. Allow connectivity
on all networks on screen on.

Bug: 2129037
Change-Id: I42afc17ddb5cd238e46d7e50f1b6e708e107b35d
diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java
index af4d7e4..0eca082 100644
--- a/services/java/com/android/server/WifiService.java
+++ b/services/java/com/android/server/WifiService.java
@@ -171,6 +171,7 @@
     private static final int MESSAGE_START_ACCESS_POINT = 6;
     private static final int MESSAGE_STOP_ACCESS_POINT  = 7;
     private static final int MESSAGE_SET_CHANNELS       = 8;
+    private static final int MESSAGE_ENABLE_NETWORKS    = 9;
 
 
     private final  WifiHandler mWifiHandler;
@@ -1663,6 +1664,12 @@
                 mDeviceIdle = false;
                 mScreenOff = false;
                 mWifiStateTracker.enableRssiPolling(true);
+                /* DHCP or other temporary failures in the past can prevent
+                 * a disabled network from being connected to, enable on screen on
+                 */
+                if (mWifiStateTracker.isAnyNetworkDisabled()) {
+                    sendEnableNetworksMessage();
+                }
             } else if (action.equals(Intent.ACTION_SCREEN_OFF)) {
                 Slog.d(TAG, "ACTION_SCREEN_OFF");
                 mScreenOff = true;
@@ -1794,6 +1801,10 @@
                 uid, 0, wifiConfig).sendToTarget();
     }
 
+    private void sendEnableNetworksMessage() {
+        Message.obtain(mWifiHandler, MESSAGE_ENABLE_NETWORKS).sendToTarget();
+    }
+
     private void updateWifiState() {
         // send a message so it's all serialized
         Message.obtain(mWifiHandler, MESSAGE_UPDATE_STATE, 0, 0).sendToTarget();
@@ -1956,6 +1967,10 @@
                     setNumAllowedChannelsBlocking(msg.arg1, msg.arg2 == 1);
                     break;
 
+                case MESSAGE_ENABLE_NETWORKS:
+                    mWifiStateTracker.enableAllNetworks(getConfiguredNetworks());
+                    break;
+
             }
         }
     }