Merge "Fix duplicate network request entry during connection" into udc-qpr-dev am: af1715e4a0

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/24196268

Change-Id: Ie52f8c49a6aaaae0c6932083e7efeba4121298a1
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Quang Luong
2023-07-31 09:16:58 +00:00
committed by Automerger Merge Worker

View File

@@ -18,8 +18,6 @@ package com.android.settings.wifi;
import static com.android.wifitrackerlib.Utils.getSecurityTypesFromScanResult;
import static java.util.stream.Collectors.toList;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
@@ -273,19 +271,31 @@ public class NetworkRequestDialogFragment extends NetworkRequestDialogBaseFragme
@VisibleForTesting
void updateWifiEntries() {
final List<WifiEntry> wifiEntries = new ArrayList<>();
if (mWifiPickerTracker.getConnectedWifiEntry() != null) {
wifiEntries.add(mWifiPickerTracker.getConnectedWifiEntry());
WifiEntry connectedWifiEntry = mWifiPickerTracker.getConnectedWifiEntry();
String connectedSsid;
if (connectedWifiEntry != null) {
connectedSsid = connectedWifiEntry.getSsid();
wifiEntries.add(connectedWifiEntry);
} else {
connectedSsid = null;
}
wifiEntries.addAll(mWifiPickerTracker.getWifiEntries());
mFilteredWifiEntries.clear();
mFilteredWifiEntries.addAll(wifiEntries.stream()
.filter(entry -> isMatchedWifiEntry(entry))
.filter(entry -> isMatchedWifiEntry(entry, connectedSsid))
.limit(mShowLimitedItem ? MAX_NUMBER_LIST_ITEM : Long.MAX_VALUE)
.collect(toList()));
.toList());
}
private boolean isMatchedWifiEntry(WifiEntry entry) {
private boolean isMatchedWifiEntry(WifiEntry entry, String connectedSsid) {
if (entry.getConnectedState() == WifiEntry.CONNECTED_STATE_DISCONNECTED
&& TextUtils.equals(entry.getSsid(), connectedSsid)) {
// WifiPickerTracker may return a duplicate unsaved network that is separate from
// the connecting app-requested network, so make sure we only show the connected
// app-requested one.
return false;
}
for (MatchWifi wifi : mMatchWifis) {
if (!TextUtils.equals(entry.getSsid(), wifi.mSsid)) {
continue;