Make filterUnreachableAPs null-safe

Bug: 209459024
Test: m SystemUI-core
Change-Id: Icb5714f1606d3b6198ffe16bdf2979883efacece
This commit is contained in:
Fedor Kudasov
2021-12-08 21:01:58 +00:00
parent 6d5336439b
commit 1273fbbc5e

View File

@@ -378,26 +378,26 @@ public class WifiTile extends QSTileImpl<SignalState> {
@Override
public void onAccessPointsChanged(final List<WifiEntry> accessPoints) {
mAccessPoints = accessPoints.toArray(new WifiEntry[accessPoints.size()]);
filterUnreachableAPs();
mAccessPoints = filterUnreachableAPs(accessPoints);
updateItems();
}
/** Filter unreachable APs from mAccessPoints */
private void filterUnreachableAPs() {
private WifiEntry[] filterUnreachableAPs(List<WifiEntry> unfiltered) {
int numReachable = 0;
for (WifiEntry ap : mAccessPoints) {
for (WifiEntry ap : unfiltered) {
if (isWifiEntryReachable(ap)) numReachable++;
}
if (numReachable != mAccessPoints.length) {
WifiEntry[] unfiltered = mAccessPoints;
mAccessPoints = new WifiEntry[numReachable];
if (numReachable != unfiltered.size()) {
WifiEntry[] accessPoints = new WifiEntry[numReachable];
int i = 0;
for (WifiEntry ap : unfiltered) {
if (isWifiEntryReachable(ap)) mAccessPoints[i++] = ap;
if (isWifiEntryReachable(ap)) accessPoints[i++] = ap;
}
return accessPoints;
}
return unfiltered.toArray(new WifiEntry[0]);
}
@Override