Remove delayed processing of UI events in onStop
Bug: 36682492
Test: manually; test tracking in b/36403635
Change-Id: Ia369cd61a6473ae2af4891cf6b923900504921c1
diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java
index e9204f9..af4d8f8 100644
--- a/src/com/android/settings/wifi/WifiSettings.java
+++ b/src/com/android/settings/wifi/WifiSettings.java
@@ -115,6 +115,13 @@
private static final String PREF_KEY_CONFIGURE_WIFI_SETTINGS = "configure_settings";
private static final String PREF_KEY_SAVED_NETWORKS = "saved_networks";
+ private final Runnable mUpdateAccessPointsRunnable = () -> {
+ updateAccessPointPreferences();
+ };
+ private final Runnable mHideProgressBarRunnable = () -> {
+ setProgressBarVisible(false);
+ };
+
protected WifiManager mWifiManager;
private WifiManager.ActionListener mConnectListener;
private WifiManager.ActionListener mSaveListener;
@@ -360,8 +367,10 @@
@Override
public void onStop() {
- super.onStop();
mWifiTracker.stopTracking();
+ getView().removeCallbacks(mUpdateAccessPointsRunnable);
+ getView().removeCallbacks(mHideProgressBarRunnable);
+ super.onStop();
}
@Override
@@ -625,9 +634,7 @@
case WifiManager.WIFI_STATE_ENABLED:
setProgressBarVisible(true);
// Have the progress bar displayed before starting to modify APs
- getView().postDelayed(() -> {
- updateAccessPointPreferences();
- }, 300 /* delay milliseconds */);
+ getView().postDelayed(mUpdateAccessPointsRunnable, 300 /* delay milliseconds */);
break;
case WifiManager.WIFI_STATE_ENABLING:
@@ -705,9 +712,7 @@
mAccessPointsPreferenceCategory.addPreference(pref);
} else {
// Continuing showing progress bar for an additional delay to overlap with animation
- getView().postDelayed(() -> {
- setProgressBarVisible(false);
- }, 1700 /* delay millis */);
+ getView().postDelayed(mHideProgressBarRunnable, 1700 /* delay millis */);
}
}