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

Commit e36b9357 authored by Iliyan Malchev's avatar Iliyan Malchev Committed by Android Git Automerger
Browse files

am 7bc28ed7: am e6345a19: am 9233fc00: Revert "Revert "wifi: Get full scan results""

* commit '7bc28ed7':
  Revert "Revert "wifi: Get full scan results""
parents d485ef27 7bc28ed7
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -198,6 +198,7 @@ public class WifiNative {
    /**
     * Format of results:
     * =================
     * id=1
     * bssid=68:7f:74:d7:1b:6e
     * freq=2412
     * level=-43
@@ -208,10 +209,11 @@ public class WifiNative {
     * ====
     *
     * RANGE=ALL gets all scan results
     * RANGE=ID- gets results from ID
     * MASK=<N> see wpa_supplicant/src/common/wpa_ctrl.h for details
     */
    public String scanResults() {
        return doStringCommand("BSS RANGE=ALL MASK=0x21987");
    public String scanResults(int sid) {
        return doStringCommand("BSS RANGE=" + sid + "- MASK=0x21987");
    }

    public boolean startDriver() {
+36 −5
Original line number Diff line number Diff line
@@ -68,8 +68,8 @@ import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.WorkSource;
import android.provider.Settings;
import android.text.TextUtils;
import android.util.LruCache;
import android.text.TextUtils;

import com.android.internal.R;
import com.android.internal.app.IBatteryStats;
@@ -1339,6 +1339,7 @@ public class WifiStateMachine extends StateMachine {
        mContext.sendStickyBroadcastAsUser(intent, UserHandle.ALL);
    }

    private static final String ID_STR = "id=";
    private static final String BSSID_STR = "bssid=";
    private static final String FREQ_STR = "freq=";
    private static final String LEVEL_STR = "level=";
@@ -1350,6 +1351,8 @@ public class WifiStateMachine extends StateMachine {

    /**
     * Format:
     *
     * id=1
     * bssid=68:7f:76:d7:1a:6e
     * freq=2412
     * level=-44
@@ -1357,6 +1360,7 @@ public class WifiStateMachine extends StateMachine {
     * flags=[WPA2-PSK-CCMP][WPS][ESS]
     * ssid=zfdy
     * ====
     * id=2
     * bssid=68:5f:74:d7:1a:6f
     * freq=5180
     * level=-73
@@ -1365,15 +1369,42 @@ public class WifiStateMachine extends StateMachine {
     * ssid=zuby
     * ====
     */
    private void setScanResults(String scanResults) {
    private void setScanResults() {
        String bssid = "";
        int level = 0;
        int freq = 0;
        long tsf = 0;
        String flags = "";
        WifiSsid wifiSsid = null;
        String scanResults;
        String tmpResults;
        StringBuffer scanResultsBuf = new StringBuffer();
        int sid = 0;

        while (true) {
            tmpResults = mWifiNative.scanResults(sid);
            if (TextUtils.isEmpty(tmpResults)) break;
            scanResultsBuf.append(tmpResults);
            scanResultsBuf.append("\n");
            String[] lines = tmpResults.split("\n");
            sid = -1;
            for (int i=lines.length - 1; i >= 0; i--) {
                if (lines[i].startsWith(END_STR)) {
                    break;
                } else if (lines[i].startsWith(ID_STR)) {
                    try {
                        sid = Integer.parseInt(lines[i].substring(ID_STR.length())) + 1;
                    } catch (NumberFormatException e) {
                        // Nothing to do
                    }
                    break;
                }
            }
            if (sid == -1) break;
        }

        if (scanResults == null) {
        scanResults = scanResultsBuf.toString();
        if (TextUtils.isEmpty(scanResults)) {
           return;
        }

@@ -2201,7 +2232,7 @@ public class WifiStateMachine extends StateMachine {
                    sendMessageDelayed(CMD_START_SUPPLICANT, SUPPLICANT_RESTART_INTERVAL_MSECS);
                    break;
                case WifiMonitor.SCAN_RESULTS_EVENT:
                    setScanResults(mWifiNative.scanResults());
                    setScanResults();
                    sendScanResultsAvailableBroadcast();
                    mScanResultIsPending = false;
                    break;