diff options
-rw-r--r-- | service/java/com/android/server/wifi/WifiStateMachine.java | 5 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java | 29 |
2 files changed, 34 insertions, 0 deletions
diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java index d6723cac3..1f6cada74 100644 --- a/service/java/com/android/server/wifi/WifiStateMachine.java +++ b/service/java/com/android/server/wifi/WifiStateMachine.java @@ -5995,6 +5995,9 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss case CMD_STOP_RSSI_MONITORING_OFFLOAD: stopRssiMonitoringOffload(); break; + case CMD_RECONNECT: + log(" Ignore CMD_RECONNECT request because wifi is already connected"); + break; case CMD_RESET_SIM_NETWORKS: if (message.arg1 == 0 // sim was removed && mLastNetworkId != WifiConfiguration.INVALID_NETWORK_ID) { @@ -6847,6 +6850,8 @@ public class WifiStateMachine extends StateMachine implements WifiNative.WifiRss case WifiManager.CONNECT_NETWORK: case CMD_ENABLE_NETWORK: case CMD_RECONNECT: + log(" Ignore CMD_RECONNECT request because wps is running"); + return HANDLED; case CMD_REASSOCIATE: deferMessage(message); break; diff --git a/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java b/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java index ecb4c959c..29590afec 100644 --- a/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java @@ -2354,6 +2354,35 @@ public class WifiStateMachineTest { } /** + * Test that reconnectCommand() triggers connectivity scan when WifiStateMachine + * is in DisconnectedMode. + */ + @Test + public void testReconnectCommandWhenDisconnected() throws Exception { + // Connect to network with |sBSSID|, |sFreq|, and then disconnect. + disconnect(); + + mWsm.reconnectCommand(WifiStateMachine.WIFI_WORK_SOURCE); + mLooper.dispatchAll(); + verify(mWifiConnectivityManager).forceConnectivityScan(WifiStateMachine.WIFI_WORK_SOURCE); + } + + /** + * Test that reconnectCommand() doesn't trigger connectivity scan when WifiStateMachine + * is in ConnectedMode. + */ + @Test + public void testReconnectCommandWhenConnected() throws Exception { + // Connect to network with |sBSSID|, |sFreq|. + connect(); + + mWsm.reconnectCommand(WifiStateMachine.WIFI_WORK_SOURCE); + mLooper.dispatchAll(); + verify(mWifiConnectivityManager, never()) + .forceConnectivityScan(WifiStateMachine.WIFI_WORK_SOURCE); + } + + /** * Adds the network without putting WifiStateMachine into ConnectMode. */ @Test |