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 */);
         }
     }