Keep "Resetting your internet" when screen rotates

- The fragment of Internet Settings will be destroyed and recreated when screen rotates

- Move connectivity recovery class into singleton class to avoid service being killed when fragment context is destroyed

- Check if connectivity is recovering when fragment is recreated and show resettings message if necessary

Bug: 202802736
Test: manual test
atest -c InternetResetHelperTest
make RunSettingsRoboTests ROBOTEST_FILTER=NetworkProviderSettingsTest

Change-Id: Iae9585ff8366b8b71b4c39dc0ec7e87a0320fa5a
This commit is contained in:
Weng Su
2022-11-19 05:59:15 +08:00
parent 7292c4a017
commit 728a59199b
3 changed files with 183 additions and 186 deletions

View File

@@ -337,6 +337,8 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
addConnectedEthernetNetworkController();
addWifiSwitchPreferenceController();
mWifiStatusMessagePreference = findPreference(PREF_KEY_WIFI_STATUS_MESSAGE);
checkConnectivityRecovering();
}
private void updateAirplaneModeMsgPreference(boolean visible) {
@@ -382,6 +384,17 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
mWifiSwitchPreferenceController.displayPreference(getPreferenceScreen());
}
private void checkConnectivityRecovering() {
mInternetResetHelper = new InternetResetHelper(getContext(), getLifecycle(),
mNetworkMobileProviderController,
findPreference(WifiSwitchPreferenceController.KEY),
mConnectedWifiEntryPreferenceCategory,
mFirstWifiEntryPreferenceCategory,
mWifiEntryPreferenceCategory,
mResetInternetPreference);
mInternetResetHelper.checkRecovering();
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
@@ -1455,16 +1468,6 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
EventLog.writeEvent(0x534e4554, "252995826", UserHandle.myUserId(), "User is a guest");
return;
}
if (mInternetResetHelper == null) {
mInternetResetHelper = new InternetResetHelper(getContext(), getLifecycle());
mInternetResetHelper.setResettingPreference(mResetInternetPreference);
mInternetResetHelper.setMobileNetworkController(mNetworkMobileProviderController);
mInternetResetHelper.setWifiTogglePreference(
findPreference(WifiSwitchPreferenceController.KEY));
mInternetResetHelper.addWifiNetworkPreference(mConnectedWifiEntryPreferenceCategory);
mInternetResetHelper.addWifiNetworkPreference(mFirstWifiEntryPreferenceCategory);
mInternetResetHelper.addWifiNetworkPreference(mWifiEntryPreferenceCategory);
}
mInternetResetHelper.restart();
}