From 959e7cd704313136f99512d521b13c236fdf6b9c Mon Sep 17 00:00:00 2001 From: Tomasz Wasilczyk Date: Fri, 10 Dec 2021 09:05:12 -0800 Subject: Don't crash quick settings if Wi-Fi is not supported. Bug: 209906859 Test: flash wifi-less device, tap around quick settings Change-Id: Iee8b3bf33c2abfb507b89db4a6781fb832571139 --- .../src/com/android/systemui/qs/tiles/dialog/InternetDialog.java | 6 ++++-- .../android/systemui/qs/tiles/dialog/InternetDialogController.java | 2 +- .../systemui/statusbar/connectivity/AccessPointControllerImpl.java | 5 +++++ 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java index 26c89ff83076..ed52ea720a92 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialog.java @@ -320,7 +320,7 @@ public class InternetDialog extends SystemUIDialog implements showProgressBar(); final boolean isDeviceLocked = mInternetDialogController.isDeviceLocked(); - final boolean isWifiEnabled = mWifiManager.isWifiEnabled(); + final boolean isWifiEnabled = mWifiManager != null && mWifiManager.isWifiEnabled(); final boolean isWifiScanEnabled = mInternetDialogController.isWifiScanEnabled(); updateWifiToggle(isWifiEnabled, isDeviceLocked); updateConnectedWifi(isWifiEnabled, isDeviceLocked); @@ -350,6 +350,7 @@ public class InternetDialog extends SystemUIDialog implements mSeeAllLayout.setOnClickListener(v -> onClickSeeMoreButton()); mWiFiToggle.setOnCheckedChangeListener( (buttonView, isChecked) -> { + if (mWifiManager == null) return; buttonView.setChecked(isChecked); mWifiManager.setWifiEnabled(isChecked); }); @@ -375,8 +376,9 @@ public class InternetDialog extends SystemUIDialog implements Log.d(TAG, "setMobileDataLayout, isCarrierNetworkActive = " + isCarrierNetworkActive); } + boolean isWifiEnabled = mWifiManager != null && mWifiManager.isWifiEnabled(); if (!mInternetDialogController.hasActiveSubId() - && (!mWifiManager.isWifiEnabled() || !isCarrierNetworkActive)) { + && (!isWifiEnabled || !isCarrierNetworkActive)) { mMobileNetworkLayout.setVisibility(View.GONE); } else { mMobileNetworkLayout.setVisibility(View.VISIBLE); diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java index 6f63a08c6c0f..da95bf9a3f6b 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/dialog/InternetDialogController.java @@ -826,7 +826,7 @@ public class InternetDialogController implements AccessPointController.AccessPoi if (!mLocationController.isLocationEnabled()) { return false; } - return mWifiManager.isScanAlwaysAvailable(); + return mWifiManager != null && mWifiManager.isScanAlwaysAvailable(); } static class WifiEntryConnectCallback implements WifiEntry.ConnectCallback { diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/AccessPointControllerImpl.java b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/AccessPointControllerImpl.java index 7bf710c053a7..c9ce12a6859e 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/AccessPointControllerImpl.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/connectivity/AccessPointControllerImpl.java @@ -117,6 +117,7 @@ public class AccessPointControllerImpl implements AccessPointController, } public boolean canConfigWifi() { + if (!mWifiPickerTrackerFactory.isSupported()) return false; return !mUserManager.hasUserRestriction(UserManager.DISALLOW_CONFIG_WIFI, new UserHandle(mCurrentUser)); } @@ -312,6 +313,10 @@ public class AccessPointControllerImpl implements AccessPointController, mWorkerHandler = workerHandler; } + private boolean isSupported() { + return mWifiManager != null; + } + /** * Create a {@link WifiPickerTracker} * -- cgit v1.2.3-59-g8ed1b