From ada75fbe7e6a1ed91f7dff61393d6686a99e55a2 Mon Sep 17 00:00:00 2001 From: Quang Luong Date: Fri, 4 Jun 2021 13:12:21 -0700 Subject: [PATCH 1/2] Do not delay updating WifiEntries for first onWifiEntriesUpdated() The first callback of onWifiEntriesUpdated() after an onStart() should update the list of WifiEntries without a delay. The callbacks afterwards should remain delayed to show the progress bar. Bug: 187473420 Test: build, visual inspection of entries being updated Change-Id: Ie11ac156673b261157411e4d6216c454266b51a9 --- .../settings/network/NetworkProviderSettings.java | 9 ++++++++- src/com/android/settings/wifi/WifiSettings.java | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java index b1611cdae7f..22b9bccc52f 100644 --- a/src/com/android/settings/network/NetworkProviderSettings.java +++ b/src/com/android/settings/network/NetworkProviderSettings.java @@ -169,6 +169,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment return WifiPickerTracker.isVerboseLoggingEnabled(); } + private boolean mIsWifiEntryListStale = true; private final Runnable mUpdateWifiEntryPreferencesRunnable = () -> { updateWifiEntryPreferences(); }; @@ -437,6 +438,7 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment @Override public void onStop() { + mIsWifiEntryListStale = true; getView().removeCallbacks(mUpdateWifiEntryPreferencesRunnable); getView().removeCallbacks(mHideProgressBarRunnable); mAirplaneModeEnabler.stop(); @@ -698,7 +700,12 @@ public class NetworkProviderSettings extends RestrictedSettingsFragment @Override public void onWifiEntriesChanged() { - updateWifiEntryPreferencesDelayed(); + if (mIsWifiEntryListStale) { + mIsWifiEntryListStale = false; + updateWifiEntryPreferences(); + } else { + updateWifiEntryPreferencesDelayed(); + } changeNextButtonState(mWifiPickerTracker.getConnectedWifiEntry() != null); // Edit the Wi-Fi network of specified SSID. diff --git a/src/com/android/settings/wifi/WifiSettings.java b/src/com/android/settings/wifi/WifiSettings.java index dac65c6ec64..75e63079fba 100644 --- a/src/com/android/settings/wifi/WifiSettings.java +++ b/src/com/android/settings/wifi/WifiSettings.java @@ -160,6 +160,7 @@ public class WifiSettings extends RestrictedSettingsFragment return WifiPickerTracker.isVerboseLoggingEnabled(); } + private boolean mIsWifiEntryListStale = true; private final Runnable mUpdateWifiEntryPreferencesRunnable = () -> { updateWifiEntryPreferences(); }; @@ -421,6 +422,7 @@ public class WifiSettings extends RestrictedSettingsFragment public void onStop() { getView().removeCallbacks(mUpdateWifiEntryPreferencesRunnable); getView().removeCallbacks(mHideProgressBarRunnable); + mIsWifiEntryListStale = true; super.onStop(); } @@ -678,7 +680,12 @@ public class WifiSettings extends RestrictedSettingsFragment @Override public void onWifiEntriesChanged() { - updateWifiEntryPreferencesDelayed(); + if (mIsWifiEntryListStale) { + mIsWifiEntryListStale = false; + updateWifiEntryPreferences(); + } else { + updateWifiEntryPreferencesDelayed(); + } changeNextButtonState(mWifiPickerTracker.getConnectedWifiEntry() != null); // Edit the Wi-Fi network of specified SSID. From 1c7ba386270c62d4097649c128dfdb2410e9cd0f Mon Sep 17 00:00:00 2001 From: Quang Luong Date: Mon, 7 Jun 2021 11:27:22 -0700 Subject: [PATCH 2/2] Add 6 GHz Wifi band to Wifi Network Details Display 6 GHz for the frequency pref in Wifi Network Details when connected to a 6 GHz network. Bug: 184170532 Test: build Change-Id: I7d10fe0e4c95e6f0ec66c3a179c3c46828eeb545 --- res/values/strings.xml | 6 ++++-- src/com/android/settings/wifi/WifiConfigController2.java | 5 +++-- .../wifi/details2/WifiDetailPreferenceController2.java | 4 ++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index fa6e95e9f13..094f7aff1d7 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -2016,10 +2016,12 @@ Listen channel Operating channel - + 2.4 GHz - + 5 GHz + + 6 GHz Sign in diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java index 65ac451c849..e8f2384d5cd 100644 --- a/src/com/android/settings/wifi/WifiConfigController2.java +++ b/src/com/android/settings/wifi/WifiConfigController2.java @@ -16,7 +16,6 @@ package com.android.settings.wifi; -import android.app.Activity; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -35,7 +34,6 @@ import android.net.wifi.WifiEnterpriseConfig.Eap; import android.net.wifi.WifiEnterpriseConfig.Phase2; import android.net.wifi.WifiManager; import android.os.IBinder; -import android.os.UserHandle; import android.security.keystore.KeyProperties; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; @@ -402,6 +400,9 @@ public class WifiConfigController2 implements TextWatcher, } else if (frequency >= WifiEntry.MIN_FREQ_5GHZ && frequency < WifiEntry.MAX_FREQ_5GHZ) { band = res.getString(R.string.wifi_band_5ghz); + } else if (frequency >= WifiEntry.MIN_FREQ_6GHZ + && frequency < WifiEntry.MAX_FREQ_6GHZ) { + band = res.getString(R.string.wifi_band_6ghz); } else { Log.e(TAG, "Unexpected frequency " + frequency); } diff --git a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java index e47dfe7b12a..ced198bb887 100644 --- a/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java +++ b/src/com/android/settings/wifi/details2/WifiDetailPreferenceController2.java @@ -623,12 +623,16 @@ public class WifiDetailPreferenceController2 extends AbstractPreferenceControlle return; } + // TODO(b/190390803): We should get the band string directly from WifiEntry.ConnectedInfo + // instead of doing the frequency -> band conversion here. final int frequency = connectedInfo.frequencyMhz; String band = null; if (frequency >= WifiEntry.MIN_FREQ_24GHZ && frequency < WifiEntry.MAX_FREQ_24GHZ) { band = mContext.getResources().getString(R.string.wifi_band_24ghz); } else if (frequency >= WifiEntry.MIN_FREQ_5GHZ && frequency < WifiEntry.MAX_FREQ_5GHZ) { band = mContext.getResources().getString(R.string.wifi_band_5ghz); + } else if (frequency >= WifiEntry.MIN_FREQ_6GHZ && frequency < WifiEntry.MAX_FREQ_6GHZ) { + band = mContext.getResources().getString(R.string.wifi_band_6ghz); } else { // Connecting state is unstable, make it disappeared if unexpected if (mWifiEntry.getConnectedState() == WifiEntry.CONNECTED_STATE_CONNECTING) {