Fix the issue of permanent loading when Wi-Fi is disabled

Bug: 173207801
Test: manual test
make RunSettingsRoboTests ROBOTEST_FILTER=NetworkProviderSettingsTest

Change-Id: Ib46c620f10987ba52787aae8b5beddb5c68e0e17
This commit is contained in:
Weng Su
2021-06-16 17:26:12 +08:00
parent 2ff8b363da
commit 58ff170086

View File

@@ -169,14 +169,18 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
return WifiPickerTracker.isVerboseLoggingEnabled(); 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 boolean mIsWifiEntryListStale = true;
private final Runnable mUpdateWifiEntryPreferencesRunnable = () -> { private final Runnable mUpdateWifiEntryPreferencesRunnable = () -> {
updateWifiEntryPreferences(); updateWifiEntryPreferences();
if (mIsWifiEntriesLoading) { getView().postDelayed(mRemoveLoadingRunnable, 10);
setLoading(false, false);
mIsWifiEntriesLoading = false;
}
}; };
private final Runnable mHideProgressBarRunnable = () -> { private final Runnable mHideProgressBarRunnable = () -> {
setProgressBarVisible(false); setProgressBarVisible(false);
@@ -250,14 +254,23 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
@Override @Override
public void onViewCreated(View view, Bundle savedInstanceState) { public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState); super.onViewCreated(view, savedInstanceState);
final Activity activity = getActivity(); Activity activity = getActivity();
if (activity != null) { if (activity == null) {
return;
}
mProgressHeader = setPinnedHeaderView(R.layout.progress_header) mProgressHeader = setPinnedHeaderView(R.layout.progress_header)
.findViewById(R.id.progress_bar_animation); .findViewById(R.id.progress_bar_animation);
setProgressBarVisible(false); setProgressBarVisible(false);
}
mWifiManager = activity.getSystemService(WifiManager.class);
if (mWifiManager != null) {
setLoading(true, false); setLoading(true, false);
mIsWifiEntriesLoading = true; mIsViewLoading = true;
if (!mWifiManager.isWifiEnabled()) {
getView().postDelayed(mRemoveLoadingRunnable, 100);
}
}
} }
@Override @Override
@@ -339,12 +352,6 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
mWifiPickerTracker = mWifiPickerTrackerHelper.getWifiPickerTracker(); mWifiPickerTracker = mWifiPickerTrackerHelper.getWifiPickerTracker();
mInternetUpdater = new InternetUpdater(getContext(), getSettingsLifecycle(), this); mInternetUpdater = new InternetUpdater(getContext(), getSettingsLifecycle(), this);
final Activity activity = getActivity();
if (activity != null) {
mWifiManager = getActivity().getSystemService(WifiManager.class);
}
mConnectListener = new WifiConnectListener(getActivity()); mConnectListener = new WifiConnectListener(getActivity());
mSaveListener = new WifiManager.ActionListener() { mSaveListener = new WifiManager.ActionListener() {