[Wi-Fi] Fix exception when WifiTracker2 callbacks to Wi-Fi Settings

When WifiTracker2 callbacks to Wi-Fi Settings, should check if the
activity is finishing at first.

Bug: 151677440
Test: make RunSettingsRoboTests -j ROBOTEST_FILTER=WifiSettings2Test
Change-Id: I95737eae3f67e6471c75ba845b57af2d721d5d37
diff --git a/src/com/android/settings/SettingsPreferenceFragment.java b/src/com/android/settings/SettingsPreferenceFragment.java
index 80e5706..659ada4 100644
--- a/src/com/android/settings/SettingsPreferenceFragment.java
+++ b/src/com/android/settings/SettingsPreferenceFragment.java
@@ -699,4 +699,9 @@
         }
         getActivity().setResult(result);
     }
+
+    protected boolean isFinishingOrDestroyed() {
+        final Activity activity = getActivity();
+        return activity == null || activity.isFinishing() || activity.isDestroyed();
+    }
 }
diff --git a/src/com/android/settings/wifi/WifiSettings2.java b/src/com/android/settings/wifi/WifiSettings2.java
index b94994e..13ccdc3 100644
--- a/src/com/android/settings/wifi/WifiSettings2.java
+++ b/src/com/android/settings/wifi/WifiSettings2.java
@@ -674,11 +674,17 @@
 
     @Override
     public void onNumSavedNetworksChanged() {
+        if (isFinishingOrDestroyed()) {
+            return;
+        }
         setAdditionalSettingsSummaries();
     }
 
     @Override
     public void onNumSavedSubscriptionsChanged() {
+        if (isFinishingOrDestroyed()) {
+            return;
+        }
         setAdditionalSettingsSummaries();
     }
 
@@ -993,12 +999,10 @@
 
         @Override
         public void onFailure(int reason) {
-            final Activity activity = getActivity();
-            if (isFisishingOrDestroyed(activity)) {
+            if (isFinishingOrDestroyed()) {
                 return;
             }
-
-            Toast.makeText(activity, R.string.wifi_failed_connect_message, Toast.LENGTH_SHORT)
+            Toast.makeText(getContext(), R.string.wifi_failed_connect_message, Toast.LENGTH_SHORT)
                     .show();
         }
     };
@@ -1020,8 +1024,7 @@
 
         @Override
         public void onConnectResult(@ConnectStatus int status) {
-            final Activity activity = getActivity();
-            if (isFisishingOrDestroyed(activity)) {
+            if (isFinishingOrDestroyed()) {
                 return;
             }
 
@@ -1041,10 +1044,6 @@
         }
     }
 
-    private boolean isFisishingOrDestroyed(Activity activity) {
-        return activity == null || activity.isFinishing() || activity.isDestroyed();
-    }
-
     private void launchConfigNewNetworkFragment(WifiEntry wifiEntry) {
         final Bundle bundle = new Bundle();
         bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY,
diff --git a/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2.java b/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2.java
index 0145bb4..c70f077 100644
--- a/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2.java
+++ b/src/com/android/settings/wifi/savedaccesspoints2/SavedAccessPointsWifiSettings2.java
@@ -153,6 +153,9 @@
 
     @Override
     public void onSavedWifiEntriesChanged() {
+        if (isFinishingOrDestroyed()) {
+            return;
+        }
         final PreferenceScreen screen = getPreferenceScreen();
         use(SavedAccessPointsPreferenceController2.class)
                 .displayPreference(screen, mSavedNetworkTracker.getSavedWifiEntries());
@@ -160,6 +163,9 @@
 
     @Override
     public void onSubscriptionWifiEntriesChanged() {
+        if (isFinishingOrDestroyed()) {
+            return;
+        }
         final PreferenceScreen screen = getPreferenceScreen();
         use(SubscribedAccessPointsPreferenceController2.class)
                 .displayPreference(screen, mSavedNetworkTracker.getSubscriptionWifiEntries());