From ada75fbe7e6a1ed91f7dff61393d6686a99e55a2 Mon Sep 17 00:00:00 2001 From: Quang Luong Date: Fri, 4 Jun 2021 13:12:21 -0700 Subject: [PATCH] Do not delay updating WifiEntries for first onWifiEntriesUpdated() The first callback of onWifiEntriesUpdated() after an onStart() should update the list of WifiEntries without a delay. The callbacks afterwards should remain delayed to show the progress bar. Bug: 187473420 Test: build, visual inspection of entries being updated Change-Id: Ie11ac156673b261157411e4d6216c454266b51a9 --- .../settings/network/NetworkProviderSettings.java | 9 ++++++++- src/com/android/settings/wifi/WifiSettings.java | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) 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.