From e7c2bc6e1a504e679b2ddca39d3765cd5a84f413 Mon Sep 17 00:00:00 2001 From: Arc Wang Date: Mon, 25 May 2020 11:05:37 +0800 Subject: [PATCH] [Wi-Fi] Fix a UI defect of AddAppNetworksFragment After clicking Save button, the signal icon always shows level 0. To correctly get the signal, this change fetches both saved WifiEntries and connected/connecting WifiEntry for signal icon information. Bug: 157344581 Test: manual visual 1. Use the intent Settings.ACTION_WIFI_ADD_NETWORKS to bring up the UI. 2. Click Save button and observe the signal icon. Change-Id: If33d1c02019ea2c1acccfbbc29bd1bf42de1cc82 --- .../AddAppNetworksFragment.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/com/android/settings/wifi/addappnetworks/AddAppNetworksFragment.java b/src/com/android/settings/wifi/addappnetworks/AddAppNetworksFragment.java index a2119791d73..392148831e5 100644 --- a/src/com/android/settings/wifi/addappnetworks/AddAppNetworksFragment.java +++ b/src/com/android/settings/wifi/addappnetworks/AddAppNetworksFragment.java @@ -750,21 +750,29 @@ public class AddAppNetworksFragment extends InstrumentedFragment implements @VisibleForTesting - void updateScanResultsToUi(List allEntries) { + void updateScanResultsToUi() { if (mUiToRequestedList == null) { // Nothing need to be updated. return; } + List reachableWifiEntries = null; + if (mWifiPickerTracker.getWifiState() == WifiManager.WIFI_STATE_ENABLED) { + reachableWifiEntries = mWifiPickerTracker.getWifiEntries(); + final WifiEntry connectedWifiEntry = mWifiPickerTracker.getConnectedWifiEntry(); + if (connectedWifiEntry != null) { + reachableWifiEntries.add(connectedWifiEntry); + } + } + // Update the signal level of the UI networks. for (UiConfigurationItem uiConfigurationItem : mUiToRequestedList) { uiConfigurationItem.mLevel = 0; - if (allEntries != null) { - final Optional matchedWifiEntry = allEntries.stream() + if (reachableWifiEntries != null) { + final Optional matchedWifiEntry = reachableWifiEntries.stream() .filter(wifiEntry -> TextUtils.equals( uiConfigurationItem.mWifiNetworkSuggestion.getSsid(), wifiEntry.getSsid())) - .filter(wifiEntry -> !wifiEntry.isSaved()) .findFirst(); uiConfigurationItem.mLevel = matchedWifiEntry.isPresent() ? matchedWifiEntry.get().getLevel() : 0; @@ -797,9 +805,7 @@ public class AddAppNetworksFragment extends InstrumentedFragment implements */ @Override public void onWifiEntriesChanged() { - updateScanResultsToUi( - (mWifiPickerTracker.getWifiState() == WifiManager.WIFI_STATE_ENABLED) - ? mWifiPickerTracker.getWifiEntries() : null); + updateScanResultsToUi(); } @Override