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

Commit 58ff1700 authored by Weng Su's avatar Weng Su
Browse files

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

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

Change-Id: Ib46c620f10987ba52787aae8b5beddb5c68e0e17
parent 2ff8b363
Loading
Loading
Loading
Loading
+25 −18
Original line number Diff line number Diff line
@@ -169,14 +169,18 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
        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 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        final Activity activity = getActivity();
        if (activity != null) {
        Activity activity = getActivity();
        if (activity == null) {
            return;
        }

        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);
        mIsWifiEntriesLoading = true;
            mIsViewLoading = true;
            if (!mWifiManager.isWifiEnabled()) {
                getView().postDelayed(mRemoveLoadingRunnable, 100);
            }
        }
    }

    @Override
@@ -339,12 +352,6 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
        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() {