Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 550f7d4d authored by Quang Luong's avatar Quang Luong
Browse files

Add correct RSSI for OSU entries in wifi picker

OSU entries should now display the correct RSSI retrieved from its
scan results.

Tracking bug for adding robolectric tests: b/122849296

Bug: 118705403
Test: manual, build and check scan results in verbose mode
Change-Id: Ie89bb94cfcef20f5dec6d4419e536aadaaed4ca5
parent ec4bb0c2
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -321,9 +321,7 @@ public class AccessPoint implements Comparable<AccessPoint> {
    public AccessPoint(Context context, OsuProvider provider) {
        mContext = context;
        mOsuProvider = provider;
        mRssi = 1;
        // TODO: This placeholder SSID is here to avoid null pointer exceptions.
        ssid = "<OsuProvider AP SSID goes here>";
        ssid = provider.getFriendlyName();
        updateKey();
    }

+13 −13
Original line number Diff line number Diff line
@@ -624,7 +624,6 @@ public class WifiTracker implements LifecycleObserver, OnStart, OnStop, OnDestro
            }

            // Add Passpoint OSU Provider AccessPoints
            // TODO(b/118705403): filter out OSU Providers which we already have credentials from.
            Map<OsuProvider, List<ScanResult>> providersAndScans =
                    mWifiManager.getMatchingOsuProviders(cachedScanResults);
            Set<OsuProvider> alreadyProvisioned = mWifiManager
@@ -632,13 +631,10 @@ public class WifiTracker implements LifecycleObserver, OnStart, OnStop, OnDestro
                            providersAndScans.keySet()).keySet();
            for (OsuProvider provider : providersAndScans.keySet()) {
                if (!alreadyProvisioned.contains(provider)) {
                    // TODO(b/118705403): use real scan results for this provider
                    AccessPoint accessPointOsu =
                            getCachedOrCreateOsu(null, cachedAccessPoints, provider);
                    // TODO(b/118705403): Figure out if we would need to update an OSU AP (this will
                    // be used if we need to display it at the top of the picker as the "active" AP)
                    // Otherwise OSU APs should ignore attempts to update the active connection info
                    // accessPointOsu.update(connectionConfig, mLastInfo, mLastNetworkInfo);
                            getCachedOrCreateOsu(providersAndScans.get(provider),
                                    cachedAccessPoints, provider);
                    accessPointOsu.update(connectionConfig, mLastInfo, mLastNetworkInfo);
                    accessPoints.add(accessPointOsu);
                }
            }
@@ -709,17 +705,21 @@ public class WifiTracker implements LifecycleObserver, OnStart, OnStop, OnDestro
            List<ScanResult> scanResults,
            List<AccessPoint> cache,
            OsuProvider provider) {
        AccessPoint matchedAccessPoint = null;
        ListIterator<AccessPoint> lit = cache.listIterator();
        while (lit.hasNext()) {
            final AccessPoint ret = lit.next();
            if (ret.getKey().equals(AccessPoint.getKey(provider))) {
            AccessPoint currentAccessPoint = lit.next();
            if (currentAccessPoint.getKey().equals(AccessPoint.getKey(provider))) {
                lit.remove();
                // TODO(b/118705403): Use real scan results for this.
                // ret.setScanResults(scanResults);
                return ret;
                matchedAccessPoint = currentAccessPoint;
                break;
            }
        }
        if (matchedAccessPoint == null) {
            matchedAccessPoint = new AccessPoint(mContext, provider);
        }
        return new AccessPoint(mContext, provider);
        matchedAccessPoint.setScanResults(scanResults);
        return matchedAccessPoint;
    }

    private void updateNetworkInfo(NetworkInfo networkInfo) {