Fix the issue of permanent loading when Wi-Fi is disabled
Bug: 173207801
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=NetworkProviderSettingsTest
Change-Id: Ib46c620f10987ba52787aae8b5beddb5c68e0e17
diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java
index 9942ca3..b34d9cd 100644
--- a/src/com/android/settings/network/NetworkProviderSettings.java
+++ b/src/com/android/settings/network/NetworkProviderSettings.java
@@ -169,14 +169,18 @@
return WifiPickerTracker.isVerboseLoggingEnabled();
}
- private boolean mIsWifiEntriesLoading;
+ private boolean mIsViewLoading;
+ private final Runnable mRemoveLoadingRunnable = () -> {
+ if (mIsViewLoading) {
+ setLoading(false, false);
+ mIsViewLoading = false;
+ }
+ };
+
private boolean mIsWifiEntryListStale = true;
private final Runnable mUpdateWifiEntryPreferencesRunnable = () -> {
updateWifiEntryPreferences();
- if (mIsWifiEntriesLoading) {
- setLoading(false, false);
- mIsWifiEntriesLoading = false;
- }
+ getView().postDelayed(mRemoveLoadingRunnable, 10);
};
private final Runnable mHideProgressBarRunnable = () -> {
setProgressBarVisible(false);
@@ -250,14 +254,23 @@
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
- final Activity activity = getActivity();
- if (activity != null) {
- mProgressHeader = setPinnedHeaderView(R.layout.progress_header)
- .findViewById(R.id.progress_bar_animation);
- setProgressBarVisible(false);
+ Activity activity = getActivity();
+ if (activity == null) {
+ return;
}
- setLoading(true, false);
- mIsWifiEntriesLoading = true;
+
+ mProgressHeader = setPinnedHeaderView(R.layout.progress_header)
+ .findViewById(R.id.progress_bar_animation);
+ setProgressBarVisible(false);
+
+ mWifiManager = activity.getSystemService(WifiManager.class);
+ if (mWifiManager != null) {
+ setLoading(true, false);
+ mIsViewLoading = true;
+ if (!mWifiManager.isWifiEnabled()) {
+ getView().postDelayed(mRemoveLoadingRunnable, 100);
+ }
+ }
}
@Override
@@ -339,12 +352,6 @@
mWifiPickerTracker = mWifiPickerTrackerHelper.getWifiPickerTracker();
mInternetUpdater = new InternetUpdater(getContext(), getSettingsLifecycle(), this);
- final Activity activity = getActivity();
-
- if (activity != null) {
- mWifiManager = getActivity().getSystemService(WifiManager.class);
- }
-
mConnectListener = new WifiConnectListener(getActivity());
mSaveListener = new WifiManager.ActionListener() {