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
This commit is contained in:
Quang Luong
2021-06-04 13:12:21 -07:00
parent f9bde76ab9
commit ada75fbe7e
2 changed files with 16 additions and 2 deletions

View File

@@ -169,6 +169,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
return WifiPickerTracker.isVerboseLoggingEnabled(); return WifiPickerTracker.isVerboseLoggingEnabled();
} }
private boolean mIsWifiEntryListStale = true;
private final Runnable mUpdateWifiEntryPreferencesRunnable = () -> { private final Runnable mUpdateWifiEntryPreferencesRunnable = () -> {
updateWifiEntryPreferences(); updateWifiEntryPreferences();
}; };
@@ -437,6 +438,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
@Override @Override
public void onStop() { public void onStop() {
mIsWifiEntryListStale = true;
getView().removeCallbacks(mUpdateWifiEntryPreferencesRunnable); getView().removeCallbacks(mUpdateWifiEntryPreferencesRunnable);
getView().removeCallbacks(mHideProgressBarRunnable); getView().removeCallbacks(mHideProgressBarRunnable);
mAirplaneModeEnabler.stop(); mAirplaneModeEnabler.stop();
@@ -698,7 +700,12 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
@Override @Override
public void onWifiEntriesChanged() { public void onWifiEntriesChanged() {
if (mIsWifiEntryListStale) {
mIsWifiEntryListStale = false;
updateWifiEntryPreferences();
} else {
updateWifiEntryPreferencesDelayed(); updateWifiEntryPreferencesDelayed();
}
changeNextButtonState(mWifiPickerTracker.getConnectedWifiEntry() != null); changeNextButtonState(mWifiPickerTracker.getConnectedWifiEntry() != null);
// Edit the Wi-Fi network of specified SSID. // Edit the Wi-Fi network of specified SSID.

View File

@@ -160,6 +160,7 @@ public class WifiSettings extends RestrictedSettingsFragment
return WifiPickerTracker.isVerboseLoggingEnabled(); return WifiPickerTracker.isVerboseLoggingEnabled();
} }
private boolean mIsWifiEntryListStale = true;
private final Runnable mUpdateWifiEntryPreferencesRunnable = () -> { private final Runnable mUpdateWifiEntryPreferencesRunnable = () -> {
updateWifiEntryPreferences(); updateWifiEntryPreferences();
}; };
@@ -421,6 +422,7 @@ public class WifiSettings extends RestrictedSettingsFragment
public void onStop() { public void onStop() {
getView().removeCallbacks(mUpdateWifiEntryPreferencesRunnable); getView().removeCallbacks(mUpdateWifiEntryPreferencesRunnable);
getView().removeCallbacks(mHideProgressBarRunnable); getView().removeCallbacks(mHideProgressBarRunnable);
mIsWifiEntryListStale = true;
super.onStop(); super.onStop();
} }
@@ -678,7 +680,12 @@ public class WifiSettings extends RestrictedSettingsFragment
@Override @Override
public void onWifiEntriesChanged() { public void onWifiEntriesChanged() {
if (mIsWifiEntryListStale) {
mIsWifiEntryListStale = false;
updateWifiEntryPreferences();
} else {
updateWifiEntryPreferencesDelayed(); updateWifiEntryPreferencesDelayed();
}
changeNextButtonState(mWifiPickerTracker.getConnectedWifiEntry() != null); changeNextButtonState(mWifiPickerTracker.getConnectedWifiEntry() != null);
// Edit the Wi-Fi network of specified SSID. // Edit the Wi-Fi network of specified SSID.