summaryrefslogtreecommitdiffstats
path: root/service/java/com/android
diff options
context:
space:
mode:
Diffstat (limited to 'service/java/com/android')
-rw-r--r--service/java/com/android/server/wifi/WifiNetworkFactory.java15
1 files changed, 13 insertions, 2 deletions
diff --git a/service/java/com/android/server/wifi/WifiNetworkFactory.java b/service/java/com/android/server/wifi/WifiNetworkFactory.java
index c1b7dc347..a890c3ad9 100644
--- a/service/java/com/android/server/wifi/WifiNetworkFactory.java
+++ b/service/java/com/android/server/wifi/WifiNetworkFactory.java
@@ -137,6 +137,8 @@ public class WifiNetworkFactory extends NetworkFactory {
private boolean mPeriodicScanTimerSet = false;
private boolean mConnectionTimeoutSet = false;
private boolean mIsPeriodicScanPaused = false;
+ // We sent a new connection request and are waiting for connection success.
+ private boolean mPendingConnectionSuccess = false;
private boolean mWifiEnabled = false;
/**
* Indicates that we have new data to serialize.
@@ -752,6 +754,8 @@ public class WifiNetworkFactory extends NetworkFactory {
// Trigger connection to the network.
connectToNetwork(networkToConnect);
+ // Triggered connection to network, now wait for the connection status.
+ mPendingConnectionSuccess = true;
}
private void handleConnectToNetworkUserSelection(WifiConfiguration network) {
@@ -800,7 +804,10 @@ public class WifiNetworkFactory extends NetworkFactory {
* Invoked by {@link ClientModeImpl} on successful connection to a network.
*/
private void handleNetworkConnectionSuccess(@NonNull WifiConfiguration connectedNetwork) {
- if (mUserSelectedNetwork == null || connectedNetwork == null) return;
+ if (mUserSelectedNetwork == null || connectedNetwork == null
+ || !mPendingConnectionSuccess) {
+ return;
+ }
if (!isUserSelectedNetwork(connectedNetwork)) {
Log.w(TAG, "Connected to unknown network " + connectedNetwork + ". Ignoring...");
return;
@@ -823,7 +830,9 @@ public class WifiNetworkFactory extends NetworkFactory {
* Invoked by {@link ClientModeImpl} on failure to connect to a network.
*/
private void handleNetworkConnectionFailure(@NonNull WifiConfiguration failedNetwork) {
- if (mUserSelectedNetwork == null || failedNetwork == null) return;
+ if (mUserSelectedNetwork == null || failedNetwork == null || !mPendingConnectionSuccess) {
+ return;
+ }
if (!isUserSelectedNetwork(failedNetwork)) {
Log.w(TAG, "Connection failed to unknown network " + failedNetwork + ". Ignoring...");
return;
@@ -908,6 +917,7 @@ public class WifiNetworkFactory extends NetworkFactory {
mUserSelectedNetworkConnectRetryCount = 0;
mIsPeriodicScanPaused = false;
mActiveMatchedScanResults = null;
+ mPendingConnectionSuccess = false;
// Cancel periodic scan, connection timeout alarm.
cancelPeriodicScans();
cancelConnectionTimeout();
@@ -937,6 +947,7 @@ public class WifiNetworkFactory extends NetworkFactory {
mConnectedSpecificNetworkRequestSpecifier = mActiveSpecificNetworkRequestSpecifier;
mActiveSpecificNetworkRequest = null;
mActiveSpecificNetworkRequestSpecifier = null;
+ mPendingConnectionSuccess = false;
// Cancel connection timeout alarm.
cancelConnectionTimeout();
}