From 1caaf7447deb43831a2384507b1200f29f6a9aeb Mon Sep 17 00:00:00 2001 From: Weng Su Date: Thu, 29 Jul 2021 13:40:17 +0800 Subject: [PATCH] Fix Settings crash issue - Add conditional checks to avoid UI updates when the fragment is finishing or destoryed. - Add conditional checks to avoid UI updates if the fragment resource is not ready. Bug: 185756174 Test: manual test make RunSettingsRoboTests ROBOTEST_FILTER=NetworkProviderSettingsTest Change-Id: I506ee81985158b8992529440a31d2d5cfe81f441 --- .../settings/network/NetworkProviderSettings.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java index d619a126f44..40adebc799a 100644 --- a/src/com/android/settings/network/NetworkProviderSettings.java +++ b/src/com/android/settings/network/NetworkProviderSettings.java @@ -710,6 +710,11 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment Log.i(TAG, "onWifiStateChanged called with wifi state: " + wifiState); } + if (isFinishingOrDestroyed()) { + Log.w(TAG, "onWifiStateChanged shouldn't run when fragment is finishing or destroyed"); + return; + } + switch (wifiState) { case WifiManager.WIFI_STATE_ENABLED: updateWifiEntryPreferences(); @@ -979,6 +984,11 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment private String getSavedNetworkSettingsSummaryText( int numSavedNetworks, int numSavedSubscriptions) { + if (getResources() == null) { + Log.w(TAG, "getSavedNetworkSettingsSummaryText shouldn't run if resource is not ready"); + return null; + } + if (numSavedSubscriptions == 0) { return getResources().getQuantityString(R.plurals.wifi_saved_access_points_summary, numSavedNetworks, numSavedNetworks);