summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Amin Shaikh <ashaikh@google.com> 2018-12-26 15:31:45 -0500
committer Amin Shaikh <ashaikh@google.com> 2018-12-26 15:31:45 -0500
commitbc38add37f53437a20481b98f3dcf7df4a93bbe4 (patch)
tree4530a9610c60097cb4cb6b71b4839f7222b87dc8
parentbb9b195729741b0b129a51c153f004debbf26e6b (diff)
Fix WifiManager NPEs in CryptKeeper UI.
Ensure systemui can boot when WifiManager is null. This patch merges go/aog/804695 into internal master. Change-Id: I7861f9c30f109852bb200bfa17207e74c4b8ac1c Fixes: 109588864 Test: manual
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java3
-rw-r--r--packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java4
4 files changed, 13 insertions, 5 deletions
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java
index 089f773ec1e9..871e2485a742 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiStatusTracker.java
@@ -101,6 +101,9 @@ public class WifiStatusTracker extends ConnectivityManager.NetworkCallback {
}
public void handleBroadcast(Intent intent) {
+ if (mWifiManager == null) {
+ return;
+ }
String action = intent.getAction();
if (action.equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) {
updateWifiState();
diff --git a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
index 2f082b959e68..e47ca3226cfb 100644
--- a/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
+++ b/packages/SettingsLib/src/com/android/settingslib/wifi/WifiTracker.java
@@ -212,7 +212,7 @@ public class WifiTracker implements LifecycleObserver, OnStart, OnStop, OnDestro
mConnectivityManager = connectivityManager;
// check if verbose logging developer option has been turned on or off
- sVerboseLogging = (mWifiManager.getVerboseLoggingLevel() > 0);
+ sVerboseLogging = mWifiManager != null && (mWifiManager.getVerboseLoggingLevel() > 0);
mFilter = filter;
@@ -283,7 +283,7 @@ public class WifiTracker implements LifecycleObserver, OnStart, OnStop, OnDestro
mScanner = new Scanner();
}
- if (mWifiManager.isWifiEnabled()) {
+ if (isWifiEnabled()) {
mScanner.resume();
}
}
@@ -413,7 +413,7 @@ public class WifiTracker implements LifecycleObserver, OnStart, OnStop, OnDestro
}
public boolean isWifiEnabled() {
- return mWifiManager.isWifiEnabled();
+ return mWifiManager != null && mWifiManager.isWifiEnabled();
}
/**
@@ -638,7 +638,7 @@ public class WifiTracker implements LifecycleObserver, OnStart, OnStop, OnDestro
private void updateNetworkInfo(NetworkInfo networkInfo) {
/* Sticky broadcasts can call this when wifi is disabled */
- if (!mWifiManager.isWifiEnabled()) {
+ if (!isWifiEnabled()) {
clearAccessPointsAndConditionallyUpdate();
return;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
index 420abe88f455..460070ba7fdc 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HotspotControllerImpl.java
@@ -118,6 +118,9 @@ public class HotspotControllerImpl implements HotspotController, WifiManager.Sof
* @param shouldListen whether we should start listening to various wifi statuses
*/
private void updateWifiStateListeners(boolean shouldListen) {
+ if (mWifiManager == null) {
+ return;
+ }
if (shouldListen) {
mWifiManager.registerSoftApCallback(
this,
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
index 693df884690a..6f63544d3cfa 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/WifiSignalController.java
@@ -53,7 +53,9 @@ public class WifiSignalController extends
connectivityManager, this::handleStatusUpdated);
mWifiTracker.setListening(true);
mHasMobileData = hasMobileData;
- wifiManager.registerTrafficStateCallback(new WifiTrafficStateCallback(), null);
+ if (wifiManager != null) {
+ wifiManager.registerTrafficStateCallback(new WifiTrafficStateCallback(), null);
+ }
// WiFi only has one state.
mCurrentState.iconGroup = mLastState.iconGroup = new IconGroup(
"Wi-Fi Icons",