Update wifi enabled state when connected.
Change-Id: Ib0be6b3ab8139781868781c370688d70cef22553
Fixes: 78242165
Test: runtest systemui
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java
index 547cd9a..fe0b35b 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java
@@ -103,10 +103,9 @@
public void handleBroadcast(Intent intent) {
String action = intent.getAction();
if (action.equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) {
- state = intent.getIntExtra(WifiManager.EXTRA_WIFI_STATE,
- WifiManager.WIFI_STATE_UNKNOWN);
- enabled = state == WifiManager.WIFI_STATE_ENABLED;
+ updateWifiState();
} else if (action.equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)) {
+ updateWifiState();
final NetworkInfo networkInfo =
intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
connected = networkInfo != null && networkInfo.isConnected();
@@ -128,6 +127,11 @@
}
}
+ private void updateWifiState() {
+ state = mWifiManager.getWifiState();
+ enabled = state == WifiManager.WIFI_STATE_ENABLED;
+ }
+
private void updateRssi(int newRssi) {
rssi = newRssi;
level = WifiManager.calculateSignalLevel(rssi, WifiManager.RSSI_LEVELS);
diff --git a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java
index d30e777..6591715 100644
--- a/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java
+++ b/packages/SystemUI/tests/src/com/android/systemui/statusbar/policy/NetworkControllerWifiTest.java
@@ -136,10 +136,9 @@
}
protected void setWifiEnabled(boolean enabled) {
- Intent i = new Intent(WifiManager.WIFI_STATE_CHANGED_ACTION);
- i.putExtra(WifiManager.EXTRA_WIFI_STATE,
+ when(mMockWm.getWifiState()).thenReturn(
enabled ? WifiManager.WIFI_STATE_ENABLED : WifiManager.WIFI_STATE_DISABLED);
- mNetworkController.onReceive(mContext, i);
+ mNetworkController.onReceive(mContext, new Intent(WifiManager.WIFI_STATE_CHANGED_ACTION));
}
protected void setWifiState(boolean connected, String ssid) {