diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java index b1611cdae7f..22b9bccc52f 100644 --- a/src/com/android/settings/network/NetworkProviderSettings.java +++ b/src/com/android/settings/network/NetworkProviderSettings.java @@ -169,6 +169,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment return WifiPickerTracker.isVerboseLoggingEnabled(); } + private boolean mIsWifiEntryListStale = true; private final Runnable mUpdateWifiEntryPreferencesRunnable = () -> { updateWifiEntryPreferences(); }; @@ -437,6 +438,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment @Override public void onStop() { + mIsWifiEntryListStale = true; getView().removeCallbacks(mUpdateWifiEntryPreferencesRunnable); getView().removeCallbacks(mHideProgressBarRunnable); mAirplaneModeEnabler.stop(); @@ -698,7 +700,12 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment @Override public void onWifiEntriesChanged() { - updateWifiEntryPreferencesDelayed(); + if (mIsWifiEntryListStale) { + mIsWifiEntryListStale = false; + updateWifiEntryPreferences(); + } else { + updateWifiEntryPreferencesDelayed(); + } changeNextButtonState(mWifiPickerTracker.getConnectedWifiEntry() != null); // Edit the Wi-Fi network of specified SSID. diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index dac65c6ec64..75e63079fba 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -160,6 +160,7 @@ public class WifiSettings extends RestrictedSettingsFragment return WifiPickerTracker.isVerboseLoggingEnabled(); } + private boolean mIsWifiEntryListStale = true; private final Runnable mUpdateWifiEntryPreferencesRunnable = () -> { updateWifiEntryPreferences(); }; @@ -421,6 +422,7 @@ public class WifiSettings extends RestrictedSettingsFragment public void onStop() { getView().removeCallbacks(mUpdateWifiEntryPreferencesRunnable); getView().removeCallbacks(mHideProgressBarRunnable); + mIsWifiEntryListStale = true; super.onStop(); } @@ -678,7 +680,12 @@ public class WifiSettings extends RestrictedSettingsFragment @Override public void onWifiEntriesChanged() { - updateWifiEntryPreferencesDelayed(); + if (mIsWifiEntryListStale) { + mIsWifiEntryListStale = false; + updateWifiEntryPreferences(); + } else { + updateWifiEntryPreferencesDelayed(); + } changeNextButtonState(mWifiPickerTracker.getConnectedWifiEntry() != null); // Edit the Wi-Fi network of specified SSID.