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:
@@ -18,8 +18,6 @@ package com.android.settings.wifi;
|
|||||||
|
|
||||||
import static com.android.wifitrackerlib.Utils.getSecurityTypesFromScanResult;
|
import static com.android.wifitrackerlib.Utils.getSecurityTypesFromScanResult;
|
||||||
|
|
||||||
import static java.util.stream.Collectors.toList;
|
|
||||||
|
|
||||||
import android.app.Dialog;
|
import android.app.Dialog;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
import android.content.DialogInterface;
|
||||||
@@ -273,19 +271,31 @@ public class NetworkRequestDialogFragment extends NetworkRequestDialogBaseFragme
|
|||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
void updateWifiEntries() {
|
void updateWifiEntries() {
|
||||||
final List<WifiEntry> wifiEntries = new ArrayList<>();
|
final List<WifiEntry> wifiEntries = new ArrayList<>();
|
||||||
if (mWifiPickerTracker.getConnectedWifiEntry() != null) {
|
WifiEntry connectedWifiEntry = mWifiPickerTracker.getConnectedWifiEntry();
|
||||||
wifiEntries.add(mWifiPickerTracker.getConnectedWifiEntry());
|
String connectedSsid;
|
||||||
|
if (connectedWifiEntry != null) {
|
||||||
|
connectedSsid = connectedWifiEntry.getSsid();
|
||||||
|
wifiEntries.add(connectedWifiEntry);
|
||||||
|
} else {
|
||||||
|
connectedSsid = null;
|
||||||
}
|
}
|
||||||
wifiEntries.addAll(mWifiPickerTracker.getWifiEntries());
|
wifiEntries.addAll(mWifiPickerTracker.getWifiEntries());
|
||||||
|
|
||||||
mFilteredWifiEntries.clear();
|
mFilteredWifiEntries.clear();
|
||||||
mFilteredWifiEntries.addAll(wifiEntries.stream()
|
mFilteredWifiEntries.addAll(wifiEntries.stream()
|
||||||
.filter(entry -> isMatchedWifiEntry(entry))
|
.filter(entry -> isMatchedWifiEntry(entry, connectedSsid))
|
||||||
.limit(mShowLimitedItem ? MAX_NUMBER_LIST_ITEM : Long.MAX_VALUE)
|
.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) {
|
for (MatchWifi wifi : mMatchWifis) {
|
||||||
if (!TextUtils.equals(entry.getSsid(), wifi.mSsid)) {
|
if (!TextUtils.equals(entry.getSsid(), wifi.mSsid)) {
|
||||||
continue;
|
continue;
|
||||||
|
Reference in New Issue
Block a user