diff options
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java b/packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java index 73915092e8b4..d9984f768751 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java +++ b/packages/SystemUI/src/com/android/systemui/qs/tiles/WifiTile.java @@ -324,12 +324,30 @@ public class WifiTile extends QSTileImpl<SignalState> { @Override public void onAccessPointsChanged(final List<AccessPoint> accessPoints) { mAccessPoints = accessPoints.toArray(new AccessPoint[accessPoints.size()]); + filterUnreachableAPs(); + updateItems(); if (accessPoints != null && accessPoints.size() > 0) { fireScanStateChanged(false); } } + /** Filter unreachable APs from mAccessPoints */ + private void filterUnreachableAPs() { + int numReachable = 0; + for (AccessPoint ap : mAccessPoints) { + if (ap.isReachable()) numReachable++; + } + if (numReachable != mAccessPoints.length) { + AccessPoint[] unfiltered = mAccessPoints; + mAccessPoints = new AccessPoint[numReachable]; + int i = 0; + for (AccessPoint ap : unfiltered) { + if (ap.isReachable()) mAccessPoints[i++] = ap; + } + } + } + @Override public void onSettingsActivityTriggered(Intent settingsIntent) { mActivityStarter.postStartActivityDismissingKeyguard(settingsIntent, 0); |