Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dea87bd8 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[Wi-Fi] Fix exception when WifiTracker2 callbacks to Wi-Fi Settings" into rvc-dev

parents f8f1b271 04854f82
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -699,4 +699,9 @@ public abstract class SettingsPreferenceFragment extends InstrumentedPreferenceF
        }
        }
        getActivity().setResult(result);
        getActivity().setResult(result);
    }
    }

    protected boolean isFinishingOrDestroyed() {
        final Activity activity = getActivity();
        return activity == null || activity.isFinishing() || activity.isDestroyed();
    }
}
}
+9 −10
Original line number Original line Diff line number Diff line
@@ -674,11 +674,17 @@ public class WifiSettings2 extends RestrictedSettingsFragment


    @Override
    @Override
    public void onNumSavedNetworksChanged() {
    public void onNumSavedNetworksChanged() {
        if (isFinishingOrDestroyed()) {
            return;
        }
        setAdditionalSettingsSummaries();
        setAdditionalSettingsSummaries();
    }
    }


    @Override
    @Override
    public void onNumSavedSubscriptionsChanged() {
    public void onNumSavedSubscriptionsChanged() {
        if (isFinishingOrDestroyed()) {
            return;
        }
        setAdditionalSettingsSummaries();
        setAdditionalSettingsSummaries();
    }
    }


@@ -993,12 +999,10 @@ public class WifiSettings2 extends RestrictedSettingsFragment


        @Override
        @Override
        public void onFailure(int reason) {
        public void onFailure(int reason) {
            final Activity activity = getActivity();
            if (isFinishingOrDestroyed()) {
            if (isFisishingOrDestroyed(activity)) {
                return;
                return;
            }
            }

            Toast.makeText(getContext(), R.string.wifi_failed_connect_message, Toast.LENGTH_SHORT)
            Toast.makeText(activity, R.string.wifi_failed_connect_message, Toast.LENGTH_SHORT)
                    .show();
                    .show();
        }
        }
    };
    };
@@ -1020,8 +1024,7 @@ public class WifiSettings2 extends RestrictedSettingsFragment


        @Override
        @Override
        public void onConnectResult(@ConnectStatus int status) {
        public void onConnectResult(@ConnectStatus int status) {
            final Activity activity = getActivity();
            if (isFinishingOrDestroyed()) {
            if (isFisishingOrDestroyed(activity)) {
                return;
                return;
            }
            }


@@ -1041,10 +1044,6 @@ public class WifiSettings2 extends RestrictedSettingsFragment
        }
        }
    }
    }


    private boolean isFisishingOrDestroyed(Activity activity) {
        return activity == null || activity.isFinishing() || activity.isDestroyed();
    }

    private void launchConfigNewNetworkFragment(WifiEntry wifiEntry) {
    private void launchConfigNewNetworkFragment(WifiEntry wifiEntry) {
        final Bundle bundle = new Bundle();
        final Bundle bundle = new Bundle();
        bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY,
        bundle.putString(WifiNetworkDetailsFragment2.KEY_CHOSEN_WIFIENTRY_KEY,
+6 −0
Original line number Original line Diff line number Diff line
@@ -153,6 +153,9 @@ public class SavedAccessPointsWifiSettings2 extends DashboardFragment


    @Override
    @Override
    public void onSavedWifiEntriesChanged() {
    public void onSavedWifiEntriesChanged() {
        if (isFinishingOrDestroyed()) {
            return;
        }
        final PreferenceScreen screen = getPreferenceScreen();
        final PreferenceScreen screen = getPreferenceScreen();
        use(SavedAccessPointsPreferenceController2.class)
        use(SavedAccessPointsPreferenceController2.class)
                .displayPreference(screen, mSavedNetworkTracker.getSavedWifiEntries());
                .displayPreference(screen, mSavedNetworkTracker.getSavedWifiEntries());
@@ -160,6 +163,9 @@ public class SavedAccessPointsWifiSettings2 extends DashboardFragment


    @Override
    @Override
    public void onSubscriptionWifiEntriesChanged() {
    public void onSubscriptionWifiEntriesChanged() {
        if (isFinishingOrDestroyed()) {
            return;
        }
        final PreferenceScreen screen = getPreferenceScreen();
        final PreferenceScreen screen = getPreferenceScreen();
        use(SubscribedAccessPointsPreferenceController2.class)
        use(SubscribedAccessPointsPreferenceController2.class)
                .displayPreference(screen, mSavedNetworkTracker.getSubscriptionWifiEntries());
                .displayPreference(screen, mSavedNetworkTracker.getSubscriptionWifiEntries());
+20 −0
Original line number Original line Diff line number Diff line
@@ -280,4 +280,24 @@ public class WifiSettings2Test {


        verify(mWifiSettings2, times(1)).startActivityForResult(any(), anyInt());
        verify(mWifiSettings2, times(1)).startActivityForResult(any(), anyInt());
    }
    }

    @Test
    public void onNumSavedNetworksChanged_isFinishing_ShouldNotCrash() {
        final FragmentActivity activity = mock(FragmentActivity.class);
        when(activity.isFinishing()).thenReturn(true);
        when(mWifiSettings2.getActivity()).thenReturn(activity);
        when(mWifiSettings2.getContext()).thenReturn(null);

        mWifiSettings2.onNumSavedNetworksChanged();
    }

    @Test
    public void onNumSavedSubscriptionsChanged_isFinishing_ShouldNotCrash() {
        final FragmentActivity activity = mock(FragmentActivity.class);
        when(activity.isFinishing()).thenReturn(true);
        when(mWifiSettings2.getActivity()).thenReturn(activity);
        when(mWifiSettings2.getContext()).thenReturn(null);

        mWifiSettings2.onNumSavedSubscriptionsChanged();
    }
}
}