diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java index 3c312b8f7b9..b66633e03a2 100644 --- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java +++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java @@ -958,9 +958,11 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle mWifiEntry.forget(this); } - mMetricsFeatureProvider.action( - mFragment.getActivity(), SettingsEnums.ACTION_WIFI_FORGET); - mFragment.getActivity().finish(); + final Activity activity = mFragment.getActivity(); + if (activity != null) { + mMetricsFeatureProvider.action(activity, SettingsEnums.ACTION_WIFI_FORGET); + activity.finish(); + } } @VisibleForTesting @@ -1135,8 +1137,11 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle Log.e(TAG, "Forget Wi-Fi network failed"); } - mMetricsFeatureProvider.action(mFragment.getActivity(), SettingsEnums.ACTION_WIFI_FORGET); - mFragment.getActivity().finish(); + final Activity activity = mFragment.getActivity(); + if (activity != null) { + mMetricsFeatureProvider.action(activity, SettingsEnums.ACTION_WIFI_FORGET); + activity.finish(); + } } /** diff --git a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java index 3f33405c117..70ae26b579b 100644 --- a/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java +++ b/tests/robotests/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2Test.java @@ -1273,6 +1273,18 @@ public class WifiDetailPreferenceController2Test { Settings.Global.WIFI_DEVICE_OWNER_CONFIGS_LOCKDOWN, 1); } + @Test + public void forgetNetwork_activityGone_ignoreFinish() { + setUpForConnectedNetwork(); + setUpSpyController(); + displayAndResume(); + when(mMockFragment.getActivity()).thenReturn(null); + + mForgetClickListener.getValue().onClick(null); + + verify(mMockActivity, never()).finish(); + } + @Test public void forgetNetwork_standardWifiNetwork_forget() { setUpForConnectedNetwork();