summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--services/java/com/android/server/WifiService.java32
-rw-r--r--wifi/java/android/net/wifi/WifiStateMachine.java137
2 files changed, 58 insertions, 111 deletions
diff --git a/services/java/com/android/server/WifiService.java b/services/java/com/android/server/WifiService.java
index 9f8557f..8b02355 100644
--- a/services/java/com/android/server/WifiService.java
+++ b/services/java/com/android/server/WifiService.java
@@ -357,7 +357,7 @@ public class WifiService extends IWifiManager.Stub {
*/
public boolean pingSupplicant() {
enforceAccessPermission();
- return mWifiStateMachine.pingSupplicant();
+ return mWifiStateMachine.syncPingSupplicant();
}
/**
@@ -436,7 +436,7 @@ public class WifiService extends IWifiManager.Stub {
*/
public int getWifiEnabledState() {
enforceAccessPermission();
- return mWifiStateMachine.getWifiState();
+ return mWifiStateMachine.syncGetWifiState();
}
/**
@@ -481,7 +481,7 @@ public class WifiService extends IWifiManager.Stub {
*/
public int getWifiApEnabledState() {
enforceAccessPermission();
- return mWifiStateMachine.getWifiApState();
+ return mWifiStateMachine.syncGetWifiApState();
}
/**
@@ -555,7 +555,7 @@ public class WifiService extends IWifiManager.Stub {
*/
public List<WifiConfiguration> getConfiguredNetworks() {
enforceAccessPermission();
- return mWifiStateMachine.getConfiguredNetworks();
+ return mWifiStateMachine.syncGetConfiguredNetworks();
}
/**
@@ -565,7 +565,7 @@ public class WifiService extends IWifiManager.Stub {
*/
public int addOrUpdateNetwork(WifiConfiguration config) {
enforceChangePermission();
- return mWifiStateMachine.addOrUpdateNetwork(config);
+ return mWifiStateMachine.syncAddOrUpdateNetwork(config);
}
/**
@@ -576,7 +576,7 @@ public class WifiService extends IWifiManager.Stub {
*/
public boolean removeNetwork(int netId) {
enforceChangePermission();
- return mWifiStateMachine.removeNetwork(netId);
+ return mWifiStateMachine.syncRemoveNetwork(netId);
}
/**
@@ -588,7 +588,7 @@ public class WifiService extends IWifiManager.Stub {
*/
public boolean enableNetwork(int netId, boolean disableOthers) {
enforceChangePermission();
- return mWifiStateMachine.enableNetwork(netId, disableOthers);
+ return mWifiStateMachine.syncEnableNetwork(netId, disableOthers);
}
/**
@@ -599,7 +599,7 @@ public class WifiService extends IWifiManager.Stub {
*/
public boolean disableNetwork(int netId) {
enforceChangePermission();
- return mWifiStateMachine.disableNetwork(netId);
+ return mWifiStateMachine.syncDisableNetwork(netId);
}
/**
@@ -612,7 +612,7 @@ public class WifiService extends IWifiManager.Stub {
* Make sure we have the latest information, by sending
* a status request to the supplicant.
*/
- return mWifiStateMachine.requestConnectionInfo();
+ return mWifiStateMachine.syncRequestConnectionInfo();
}
/**
@@ -622,7 +622,7 @@ public class WifiService extends IWifiManager.Stub {
*/
public List<ScanResult> getScanResults() {
enforceAccessPermission();
- return mWifiStateMachine.getScanResultsList();
+ return mWifiStateMachine.syncGetScanResultsList();
}
/**
@@ -634,7 +634,7 @@ public class WifiService extends IWifiManager.Stub {
public boolean saveConfiguration() {
boolean result = true;
enforceChangePermission();
- return mWifiStateMachine.saveConfig();
+ return mWifiStateMachine.syncSaveConfig();
}
/**
@@ -723,7 +723,7 @@ public class WifiService extends IWifiManager.Stub {
*/
public DhcpInfo getDhcpInfo() {
enforceAccessPermission();
- return mWifiStateMachine.getDhcpInfo();
+ return mWifiStateMachine.syncGetDhcpInfo();
}
/**
@@ -823,7 +823,7 @@ public class WifiService extends IWifiManager.Stub {
* or plugged in to AC).
*/
if (!shouldWifiStayAwake(stayAwakeConditions, mPluggedType)) {
- WifiInfo info = mWifiStateMachine.requestConnectionInfo();
+ WifiInfo info = mWifiStateMachine.syncRequestConnectionInfo();
if (info.getSupplicantState() != SupplicantState.COMPLETED) {
// we used to go to sleep immediately, but this caused some race conditions
// we don't have time to track down for this release. Delay instead,
@@ -1002,7 +1002,7 @@ public class WifiService extends IWifiManager.Stub {
+ ", uid=" + Binder.getCallingUid());
return;
}
- pw.println("Wi-Fi is " + mWifiStateMachine.getWifiStateByName());
+ pw.println("Wi-Fi is " + mWifiStateMachine.syncGetWifiStateByName());
pw.println("Stay-awake conditions: " +
Settings.System.getInt(mContext.getContentResolver(),
Settings.System.STAY_ON_WHILE_PLUGGED_IN, 0));
@@ -1012,7 +1012,7 @@ public class WifiService extends IWifiManager.Stub {
pw.println(mWifiStateMachine);
pw.println();
pw.println("Latest scan results:");
- List<ScanResult> scanResults = mWifiStateMachine.getScanResultsList();
+ List<ScanResult> scanResults = mWifiStateMachine.syncGetScanResultsList();
if (scanResults != null && scanResults.size() != 0) {
pw.println(" BSSID Frequency RSSI Flags SSID");
for (ScanResult r : scanResults) {
@@ -1320,7 +1320,7 @@ public class WifiService extends IWifiManager.Stub {
if ((state == NetworkInfo.State.DISCONNECTED)
|| (state == NetworkInfo.State.UNKNOWN)) {
// Look for an open network
- List<ScanResult> scanResults = mWifiStateMachine.getScanResultsList();
+ List<ScanResult> scanResults = mWifiStateMachine.syncGetScanResultsList();
if (scanResults != null) {
int numOpenNetworks = 0;
for (int i = scanResults.size() - 1; i >= 0; i--) {
diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java
index 19c4eb0..28e2805 100644
--- a/wifi/java/android/net/wifi/WifiStateMachine.java
+++ b/wifi/java/android/net/wifi/WifiStateMachine.java
@@ -236,8 +236,6 @@ public class WifiStateMachine extends HierarchicalStateMachine {
private static final int CMD_GET_NETWORK_CONFIG = 58;
/* Save configuration */
private static final int CMD_SAVE_CONFIG = 59;
- /* Connection status */
- private static final int CMD_CONNECTION_STATUS = 60;
/* Supplicant commands after driver start*/
/* Initiate a scan */
@@ -379,10 +377,6 @@ public class WifiStateMachine extends HierarchicalStateMachine {
/* Soft Ap is running */
private HierarchicalState mSoftApStartedState = new SoftApStartedState();
- /* Argument for Message object to indicate a synchronous call */
- private static final int SYNCHRONOUS_CALL = 1;
- private static final int ASYNCHRONOUS_CALL = 0;
-
/**
* One of {@link WifiManager#WIFI_STATE_DISABLED},
@@ -488,7 +482,7 @@ public class WifiStateMachine extends HierarchicalStateMachine {
/**
* TODO: doc
*/
- public boolean pingSupplicant() {
+ public boolean syncPingSupplicant() {
return sendSyncMessage(CMD_PING_SUPPLICANT).boolValue;
}
@@ -535,14 +529,14 @@ public class WifiStateMachine extends HierarchicalStateMachine {
/**
* TODO: doc
*/
- public int getWifiState() {
+ public int syncGetWifiState() {
return mWifiState.get();
}
/**
* TODO: doc
*/
- public String getWifiStateByName() {
+ public String syncGetWifiStateByName() {
switch (mWifiState.get()) {
case WIFI_STATE_DISABLING:
return "disabling";
@@ -562,14 +556,14 @@ public class WifiStateMachine extends HierarchicalStateMachine {
/**
* TODO: doc
*/
- public int getWifiApState() {
+ public int syncGetWifiApState() {
return mWifiApState.get();
}
/**
* TODO: doc
*/
- public String getWifiApStateByName() {
+ public String syncGetWifiApStateByName() {
switch (mWifiApState.get()) {
case WIFI_AP_STATE_DISABLING:
return "disabling";
@@ -591,11 +585,11 @@ public class WifiStateMachine extends HierarchicalStateMachine {
* @return a {@link WifiInfo} object containing information about the current connection
*
*/
- public WifiInfo requestConnectionInfo() {
+ public WifiInfo syncRequestConnectionInfo() {
return mWifiInfo;
}
- public DhcpInfo getDhcpInfo() {
+ public DhcpInfo syncGetDhcpInfo() {
return mDhcpInfo;
}
@@ -635,7 +629,7 @@ public class WifiStateMachine extends HierarchicalStateMachine {
/**
* TODO: doc
*/
- public List<ScanResult> getScanResultsList() {
+ public List<ScanResult> syncGetScanResultsList() {
return mScanResults;
}
@@ -665,11 +659,11 @@ public class WifiStateMachine extends HierarchicalStateMachine {
*
* @return network id of the new network
*/
- public int addOrUpdateNetwork(WifiConfiguration config) {
+ public int syncAddOrUpdateNetwork(WifiConfiguration config) {
return sendSyncMessage(CMD_ADD_OR_UPDATE_NETWORK, config).intValue;
}
- public List<WifiConfiguration> getConfiguredNetworks() {
+ public List<WifiConfiguration> syncGetConfiguredNetworks() {
return sendSyncMessage(CMD_GET_NETWORK_CONFIG).configList;
}
@@ -678,7 +672,7 @@ public class WifiStateMachine extends HierarchicalStateMachine {
*
* @param networkId id of the network to be removed
*/
- public boolean removeNetwork(int networkId) {
+ public boolean syncRemoveNetwork(int networkId) {
return sendSyncMessage(obtainMessage(CMD_REMOVE_NETWORK, networkId, 0)).boolValue;
}
@@ -697,7 +691,7 @@ public class WifiStateMachine extends HierarchicalStateMachine {
* @param disableOthers true, if all other networks have to be disabled
* @return {@code true} if the operation succeeds, {@code false} otherwise
*/
- public boolean enableNetwork(int netId, boolean disableOthers) {
+ public boolean syncEnableNetwork(int netId, boolean disableOthers) {
return sendSyncMessage(CMD_ENABLE_NETWORK,
new EnableNetParams(netId, disableOthers)).boolValue;
}
@@ -708,7 +702,7 @@ public class WifiStateMachine extends HierarchicalStateMachine {
* @param netId network id of the network
* @return {@code true} if the operation succeeds, {@code false} otherwise
*/
- public boolean disableNetwork(int netId) {
+ public boolean syncDisableNetwork(int netId) {
return sendSyncMessage(obtainMessage(CMD_DISABLE_NETWORK, netId, 0)).boolValue;
}
@@ -746,23 +740,6 @@ public class WifiStateMachine extends HierarchicalStateMachine {
sendMessage(obtainMessage(CMD_FORGET_NETWORK, netId, 0));
}
- /**
- * Get detailed status of the connection
- *
- * @return Example status result
- * bssid=aa:bb:cc:dd:ee:ff
- * ssid=TestNet
- * id=3
- * pairwise_cipher=NONE
- * group_cipher=NONE
- * key_mgmt=NONE
- * wpa_state=COMPLETED
- * ip_address=X.X.X.X
- */
- public String status() {
- return sendSyncMessage(CMD_CONNECTION_STATUS).stringValue;
- }
-
public void enableRssiPolling(boolean enabled) {
sendMessage(obtainMessage(CMD_ENABLE_RSSI_POLL, enabled ? 1 : 0, 0));
}
@@ -771,7 +748,7 @@ public class WifiStateMachine extends HierarchicalStateMachine {
*
* @return RSSI value, -1 on failure
*/
- public int getRssi() {
+ public int syncGetRssi() {
return sendSyncMessage(CMD_GET_RSSI).intValue;
}
@@ -780,7 +757,7 @@ public class WifiStateMachine extends HierarchicalStateMachine {
*
* @return RSSI value, -1 on failure
*/
- public int getRssiApprox() {
+ public int syncGetRssiApprox() {
return sendSyncMessage(CMD_GET_RSSI_APPROX).intValue;
}
@@ -789,7 +766,7 @@ public class WifiStateMachine extends HierarchicalStateMachine {
*
* @return link speed, -1 on failure
*/
- public int getLinkSpeed() {
+ public int syncGetLinkSpeed() {
return sendSyncMessage(CMD_GET_LINK_SPEED).intValue;
}
@@ -798,7 +775,7 @@ public class WifiStateMachine extends HierarchicalStateMachine {
*
* @return MAC address, null on failure
*/
- public String getMacAddress() {
+ public String syncGetMacAddress() {
return sendSyncMessage(CMD_GET_MAC_ADDR).stringValue;
}
@@ -895,7 +872,7 @@ public class WifiStateMachine extends HierarchicalStateMachine {
*
* TODO: deprecate this
*/
- public boolean saveConfig() {
+ public boolean syncSaveConfig() {
return sendSyncMessage(CMD_SAVE_CONFIG).boolValue;
}
@@ -931,12 +908,10 @@ public class WifiStateMachine extends HierarchicalStateMachine {
}
/**
- * message.arg2 is reserved to indicate synchronized
* message.obj is used to store SyncParams
*/
private SyncReturn syncedSend(Message msg) {
SyncParams syncParams = (SyncParams) msg.obj;
- msg.arg2 = SYNCHRONOUS_CALL;
synchronized(syncParams) {
if (DBG) Log.d(TAG, "syncedSend " + msg);
sendMessage(msg);
@@ -995,7 +970,7 @@ public class WifiStateMachine extends HierarchicalStateMachine {
mWifiState.set(wifiState);
- if (DBG) Log.d(TAG, "setWifiState: " + getWifiStateByName());
+ if (DBG) Log.d(TAG, "setWifiState: " + syncGetWifiStateByName());
final Intent intent = new Intent(WifiManager.WIFI_STATE_CHANGED_ACTION);
intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
@@ -1020,7 +995,7 @@ public class WifiStateMachine extends HierarchicalStateMachine {
// Update state
mWifiApState.set(wifiApState);
- if (DBG) Log.d(TAG, "setWifiApState: " + getWifiApStateByName());
+ if (DBG) Log.d(TAG, "setWifiApState: " + syncGetWifiApStateByName());
final Intent intent = new Intent(WifiManager.WIFI_AP_STATE_CHANGED_ACTION);
intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
@@ -2082,16 +2057,13 @@ public class WifiStateMachine extends HierarchicalStateMachine {
case CMD_GET_LINK_SPEED:
case CMD_GET_MAC_ADDR:
case CMD_SAVE_CONFIG:
- case CMD_CONNECTION_STATUS:
case CMD_GET_NETWORK_CONFIG:
- if (message.arg2 == SYNCHRONOUS_CALL) {
- syncParams = (SyncParams) message.obj;
- syncParams.mSyncReturn.boolValue = false;
- syncParams.mSyncReturn.intValue = -1;
- syncParams.mSyncReturn.stringValue = null;
- syncParams.mSyncReturn.configList = null;
- notifyOnMsgObject(message);
- }
+ syncParams = (SyncParams) message.obj;
+ syncParams.mSyncReturn.boolValue = false;
+ syncParams.mSyncReturn.intValue = -1;
+ syncParams.mSyncReturn.stringValue = null;
+ syncParams.mSyncReturn.configList = null;
+ notifyOnMsgObject(message);
break;
case CMD_ENABLE_RSSI_POLL:
mEnableRssiPolling = (message.arg1 == 1);
@@ -2526,42 +2498,27 @@ public class WifiStateMachine extends HierarchicalStateMachine {
break;
case CMD_REMOVE_NETWORK:
EventLog.writeEvent(EVENTLOG_WIFI_EVENT_HANDLED, message.what);
- if (message.arg2 == SYNCHRONOUS_CALL) {
- syncParams = (SyncParams) message.obj;
- syncParams.mSyncReturn.boolValue = WifiNative.removeNetworkCommand(
- message.arg1);
- notifyOnMsgObject(message);
- } else {
- /* asynchronous handling */
- WifiNative.removeNetworkCommand(message.arg1);
- }
+ syncParams = (SyncParams) message.obj;
+ syncParams.mSyncReturn.boolValue = WifiNative.removeNetworkCommand(
+ message.arg1);
+ notifyOnMsgObject(message);
sendSupplicantConfigChangedBroadcast();
break;
case CMD_ENABLE_NETWORK:
EventLog.writeEvent(EVENTLOG_WIFI_EVENT_HANDLED, message.what);
- if (message.arg2 == SYNCHRONOUS_CALL) {
- syncParams = (SyncParams) message.obj;
- EnableNetParams enableNetParams = (EnableNetParams) syncParams.mParameter;
- syncParams.mSyncReturn.boolValue = WifiNative.enableNetworkCommand(
- enableNetParams.netId, enableNetParams.disableOthers);
- notifyOnMsgObject(message);
- } else {
- /* asynchronous handling */
- WifiNative.enableNetworkCommand(message.arg1, message.arg2 == 1);
- }
+ syncParams = (SyncParams) message.obj;
+ EnableNetParams enableNetParams = (EnableNetParams) syncParams.mParameter;
+ syncParams.mSyncReturn.boolValue = WifiNative.enableNetworkCommand(
+ enableNetParams.netId, enableNetParams.disableOthers);
+ notifyOnMsgObject(message);
sendSupplicantConfigChangedBroadcast();
break;
case CMD_DISABLE_NETWORK:
EventLog.writeEvent(EVENTLOG_WIFI_EVENT_HANDLED, message.what);
- if (message.arg2 == SYNCHRONOUS_CALL) {
- syncParams = (SyncParams) message.obj;
- syncParams.mSyncReturn.boolValue = WifiNative.disableNetworkCommand(
- message.arg1);
- notifyOnMsgObject(message);
- } else {
- /* asynchronous handling */
- WifiNative.disableNetworkCommand(message.arg1);
- }
+ syncParams = (SyncParams) message.obj;
+ syncParams.mSyncReturn.boolValue = WifiNative.disableNetworkCommand(
+ message.arg1);
+ notifyOnMsgObject(message);
sendSupplicantConfigChangedBroadcast();
break;
case CMD_BLACKLIST_NETWORK:
@@ -2577,14 +2534,9 @@ public class WifiStateMachine extends HierarchicalStateMachine {
notifyOnMsgObject(message);
break;
case CMD_SAVE_CONFIG:
- if (message.arg2 == SYNCHRONOUS_CALL) {
- syncParams = (SyncParams) message.obj;
- syncParams.mSyncReturn.boolValue = WifiNative.saveConfigCommand();
- notifyOnMsgObject(message);
- } else {
- /* asynchronous handling */
- WifiNative.saveConfigCommand();
- }
+ syncParams = (SyncParams) message.obj;
+ syncParams.mSyncReturn.boolValue = WifiNative.saveConfigCommand();
+ notifyOnMsgObject(message);
// Inform the backup manager about a data change
IBackupManager ibm = IBackupManager.Stub.asInterface(
ServiceManager.getService(Context.BACKUP_SERVICE));
@@ -2596,11 +2548,6 @@ public class WifiStateMachine extends HierarchicalStateMachine {
}
}
break;
- case CMD_CONNECTION_STATUS:
- syncParams = (SyncParams) message.obj;
- syncParams.mSyncReturn.stringValue = WifiNative.statusCommand();
- notifyOnMsgObject(message);
- break;
case CMD_GET_MAC_ADDR:
syncParams = (SyncParams) message.obj;
syncParams.mSyncReturn.stringValue = WifiNative.getMacAddressCommand();