Skip to content

Commit 14c92b8

Browse files
isheriffAndroid (Google) Code Review
authored andcommitted
Merge "Fix ssid fetch"
2 parents e1531a6 + 7bdcb1e commit 14c92b8

File tree

3 files changed

+13
-24
lines changed

3 files changed

+13
-24
lines changed

wifi/java/android/net/wifi/StateChangeResult.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,15 @@
2323
* @hide
2424
*/
2525
public class StateChangeResult {
26-
StateChangeResult(int networkId, String BSSID, SupplicantState state) {
26+
StateChangeResult(int networkId, String SSID, String BSSID, SupplicantState state) {
2727
this.state = state;
28+
this.SSID = SSID;
2829
this.BSSID = BSSID;
2930
this.networkId = networkId;
3031
}
32+
3133
int networkId;
34+
String SSID;
3235
String BSSID;
3336
SupplicantState state;
3437
}

wifi/java/android/net/wifi/WifiMonitor.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -637,6 +637,9 @@ private void handleHostApEvents(String dataString) {
637637
* id=network-id state=new-state
638638
*/
639639
private void handleSupplicantStateChange(String dataString) {
640+
String SSID = null;
641+
int index = dataString.indexOf("SSID=");
642+
if (index != -1) SSID = dataString.substring(index);
640643
String[] dataTokens = dataString.split(" ");
641644

642645
String BSSID = null;
@@ -657,7 +660,6 @@ private void handleSupplicantStateChange(String dataString) {
657660
try {
658661
value = Integer.parseInt(nameValue[1]);
659662
} catch (NumberFormatException e) {
660-
Log.w(TAG, "STATE-CHANGE non-integer parameter: " + token);
661663
continue;
662664
}
663665

@@ -680,7 +682,7 @@ private void handleSupplicantStateChange(String dataString) {
680682
if (newSupplicantState == SupplicantState.INVALID) {
681683
Log.w(TAG, "Invalid supplicant state: " + newState);
682684
}
683-
notifySupplicantStateChange(networkId, BSSID, newSupplicantState);
685+
notifySupplicantStateChange(networkId, SSID, BSSID, newSupplicantState);
684686
}
685687
}
686688

@@ -729,11 +731,13 @@ void notifyNetworkStateChange(NetworkInfo.DetailedState newState, String BSSID,
729731
* Send the state machine a notification that the state of the supplicant
730732
* has changed.
731733
* @param networkId the configured network on which the state change occurred
734+
* @param SSID network name
735+
* @param BSSID network address
732736
* @param newState the new {@code SupplicantState}
733737
*/
734-
void notifySupplicantStateChange(int networkId, String BSSID, SupplicantState newState) {
738+
void notifySupplicantStateChange(int networkId, String SSID, String BSSID, SupplicantState newState) {
735739
mStateMachine.sendMessage(mStateMachine.obtainMessage(SUPPLICANT_STATE_CHANGE_EVENT,
736-
new StateChangeResult(networkId, BSSID, newState)));
740+
new StateChangeResult(networkId, SSID, BSSID, newState)));
737741
}
738742

739743
/**

wifi/java/android/net/wifi/WifiStateMachine.java

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1441,23 +1441,6 @@ private void setScanResults(String scanResults) {
14411441
mScanResults = scanList;
14421442
}
14431443

1444-
private String fetchSSID() {
1445-
String status = mWifiNative.status();
1446-
if (status == null) {
1447-
return null;
1448-
}
1449-
// extract ssid from a series of "name=value"
1450-
String[] lines = status.split("\n");
1451-
for (String line : lines) {
1452-
String[] prop = line.split(" *= *");
1453-
if (prop.length < 2) continue;
1454-
String name = prop[0];
1455-
String value = prop[1];
1456-
if (name.equalsIgnoreCase("ssid")) return value;
1457-
}
1458-
return null;
1459-
}
1460-
14611444
/*
14621445
* Fetch RSSI and linkspeed on current connection
14631446
*/
@@ -1618,6 +1601,7 @@ private SupplicantState handleSupplicantStateChange(Message message) {
16181601
/* BSSID is valid only in ASSOCIATING state */
16191602
mWifiInfo.setBSSID(stateChangeResult.BSSID);
16201603
}
1604+
mWifiInfo.setSSID(stateChangeResult.SSID);
16211605

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

@@ -2935,8 +2919,6 @@ public boolean processMessage(Message message) {
29352919
mLastNetworkId = message.arg1;
29362920
mLastBssid = (String) message.obj;
29372921

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

0 commit comments

Comments
 (0)