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() {