Show wifi list progress bar when scanning
Show the progress bar in Internet Settings while we're currently scanning for networks, and then stop when we receive the results of the scan. Bug: 308567866 Test: manually verify progress bar is shown while wifi is scanning Change-Id: Ice500c69d24f7843b1a6b64c9ac5245b16c7c0db
This commit is contained in:
@@ -32,7 +32,6 @@ import android.net.NetworkTemplate;
|
||||
import android.net.wifi.WifiConfiguration;
|
||||
import android.net.wifi.WifiManager;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.PowerManager;
|
||||
import android.os.UserHandle;
|
||||
import android.os.UserManager;
|
||||
@@ -184,7 +183,6 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
}
|
||||
};
|
||||
|
||||
private boolean mIsWifiEntryListStale = true;
|
||||
@VisibleForTesting
|
||||
final Runnable mUpdateWifiEntryPreferencesRunnable = () -> {
|
||||
updateWifiEntryPreferences();
|
||||
@@ -536,7 +534,6 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
|
||||
@Override
|
||||
public void onStop() {
|
||||
mIsWifiEntryListStale = true;
|
||||
getView().removeCallbacks(mRemoveLoadingRunnable);
|
||||
getView().removeCallbacks(mUpdateWifiEntryPreferencesRunnable);
|
||||
getView().removeCallbacks(mHideProgressBarRunnable);
|
||||
@@ -878,6 +875,11 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onScanRequested() {
|
||||
setProgressBarVisible(true);
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
void setWifiScanMessage(boolean isWifiEnabled) {
|
||||
final Context context = getContext();
|
||||
@@ -908,12 +910,10 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onWifiEntriesChanged() {
|
||||
if (mIsWifiEntryListStale) {
|
||||
mIsWifiEntryListStale = false;
|
||||
updateWifiEntryPreferences();
|
||||
} else {
|
||||
updateWifiEntryPreferencesDelayed();
|
||||
public void onWifiEntriesChanged(@WifiPickerTracker.WifiEntriesChangedReason int reason) {
|
||||
updateWifiEntryPreferences();
|
||||
if (reason == WifiPickerTracker.WIFI_ENTRIES_CHANGED_REASON_SCAN_RESULTS) {
|
||||
setProgressBarVisible(false);
|
||||
}
|
||||
changeNextButtonState(mWifiPickerTracker != null
|
||||
&& mWifiPickerTracker.getConnectedWifiEntry() != null);
|
||||
@@ -950,24 +950,6 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
setAdditionalSettingsSummaries();
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates WifiEntries from {@link WifiPickerTracker#getWifiEntries()}. Adds a delay to have
|
||||
* progress bar displayed before starting to modify entries.
|
||||
*/
|
||||
private void updateWifiEntryPreferencesDelayed() {
|
||||
// Safeguard from some delayed event handling
|
||||
if (getActivity() != null && !mIsRestricted && mWifiPickerTracker != null
|
||||
&& mWifiPickerTracker.getWifiState() == WifiManager.WIFI_STATE_ENABLED) {
|
||||
final View view = getView();
|
||||
final Handler handler = view.getHandler();
|
||||
if (handler != null && handler.hasCallbacks(mUpdateWifiEntryPreferencesRunnable)) {
|
||||
return;
|
||||
}
|
||||
setProgressBarVisible(true);
|
||||
view.postDelayed(mUpdateWifiEntryPreferencesRunnable, 300);
|
||||
}
|
||||
}
|
||||
|
||||
protected void updateWifiEntryPreferences() {
|
||||
// bypass the update if the activity and the view are not ready, or it's restricted UI.
|
||||
if (getActivity() == null || getView() == null || mIsRestricted) {
|
||||
@@ -1050,16 +1032,12 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment
|
||||
removeCachedPrefs(mWifiEntryPreferenceCategory);
|
||||
|
||||
if (!hasAvailableWifiEntries) {
|
||||
setProgressBarVisible(true);
|
||||
Preference pref = new Preference(getPrefContext());
|
||||
pref.setSelectable(false);
|
||||
pref.setSummary(R.string.wifi_empty_list_wifi_on);
|
||||
pref.setOrder(index++);
|
||||
pref.setKey(PREF_KEY_EMPTY_WIFI_LIST);
|
||||
mWifiEntryPreferenceCategory.addPreference(pref);
|
||||
} else {
|
||||
// Continuing showing progress bar for an additional delay to overlap with animation
|
||||
getView().postDelayed(mHideProgressBarRunnable, 1700 /* delay millis */);
|
||||
}
|
||||
|
||||
mAddWifiNetworkPreference.setOrder(index++);
|
||||
|
Reference in New Issue
Block a user