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

Commit 14c92b8f authored by Irfan Sheriff's avatar Irfan Sheriff Committed by Android (Google) Code Review
Browse files

Merge "Fix ssid fetch"

parents e1531a65 7bdcb1ee
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -23,12 +23,15 @@
 * @hide
 */
public class StateChangeResult {
    StateChangeResult(int networkId, String BSSID, SupplicantState state) {
    StateChangeResult(int networkId, String SSID, String BSSID, SupplicantState state) {
        this.state = state;
        this.SSID = SSID;
        this.BSSID = BSSID;
        this.networkId = networkId;
    }

    int networkId;
    String SSID;
    String BSSID;
    SupplicantState state;
}
+8 −4
Original line number Diff line number Diff line
@@ -637,6 +637,9 @@ public class WifiMonitor {
         * id=network-id state=new-state
         */
        private void handleSupplicantStateChange(String dataString) {
            String SSID = null;
            int index = dataString.indexOf("SSID=");
            if (index != -1) SSID = dataString.substring(index);
            String[] dataTokens = dataString.split(" ");

            String BSSID = null;
@@ -657,7 +660,6 @@ public class WifiMonitor {
                try {
                    value = Integer.parseInt(nameValue[1]);
                } catch (NumberFormatException e) {
                    Log.w(TAG, "STATE-CHANGE non-integer parameter: " + token);
                    continue;
                }

@@ -680,7 +682,7 @@ public class WifiMonitor {
            if (newSupplicantState == SupplicantState.INVALID) {
                Log.w(TAG, "Invalid supplicant state: " + newState);
            }
            notifySupplicantStateChange(networkId, BSSID, newSupplicantState);
            notifySupplicantStateChange(networkId, SSID, BSSID, newSupplicantState);
        }
    }

@@ -729,11 +731,13 @@ public class WifiMonitor {
     * Send the state machine a notification that the state of the supplicant
     * has changed.
     * @param networkId the configured network on which the state change occurred
     * @param SSID network name
     * @param BSSID network address
     * @param newState the new {@code SupplicantState}
     */
    void notifySupplicantStateChange(int networkId, String BSSID, SupplicantState newState) {
    void notifySupplicantStateChange(int networkId, String SSID, String BSSID, SupplicantState newState) {
        mStateMachine.sendMessage(mStateMachine.obtainMessage(SUPPLICANT_STATE_CHANGE_EVENT,
                new StateChangeResult(networkId, BSSID, newState)));
                new StateChangeResult(networkId, SSID, BSSID, newState)));
    }

    /**
+1 −19
Original line number Diff line number Diff line
@@ -1441,23 +1441,6 @@ public class WifiStateMachine extends StateMachine {
        mScanResults = scanList;
    }

    private String fetchSSID() {
        String status = mWifiNative.status();
        if (status == null) {
            return null;
        }
        // extract ssid from a series of "name=value"
        String[] lines = status.split("\n");
        for (String line : lines) {
            String[] prop = line.split(" *= *");
            if (prop.length < 2) continue;
            String name = prop[0];
            String value = prop[1];
            if (name.equalsIgnoreCase("ssid")) return value;
        }
        return null;
    }

    /*
     * Fetch RSSI and linkspeed on current connection
     */
@@ -1618,6 +1601,7 @@ public class WifiStateMachine extends StateMachine {
            /* BSSID is valid only in ASSOCIATING state */
            mWifiInfo.setBSSID(stateChangeResult.BSSID);
        }
        mWifiInfo.setSSID(stateChangeResult.SSID);

        mSupplicantStateTracker.sendMessage(Message.obtain(message));

@@ -2935,8 +2919,6 @@ public class WifiStateMachine extends StateMachine {
                    mLastNetworkId = message.arg1;
                    mLastBssid = (String) message.obj;

                    //TODO: make supplicant modification to push this in events
                    mWifiInfo.setSSID(fetchSSID());
                    mWifiInfo.setBSSID(mLastBssid);
                    mWifiInfo.setNetworkId(mLastNetworkId);
                    /* send event to CM & network change broadcast */