summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--service/java/com/android/server/wifi/WifiStateMachine.java5
-rw-r--r--tests/wifitests/src/com/android/server/wifi/WifiStateMachineTest.java29
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