summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2014-11-25 16:28:59 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2014-11-25 16:28:59 -0800
commit14f30893a9cb85fca55a8e68848d8f319c4dbbed (patch)
tree4c494cae31e916a4b3422680cf5a204774547fbb
parent70a7f6985c6b12097f3f96fe0274f2c9a04f9e76 (diff)
parent73ad868e44a0cbfba6eadbd690420e8e5cfcd33e (diff)
downloadandroid_frameworks_opt_net_wifi-14f30893a9cb85fca55a8e68848d8f319c4dbbed.tar.gz
android_frameworks_opt_net_wifi-14f30893a9cb85fca55a8e68848d8f319c4dbbed.tar.bz2
android_frameworks_opt_net_wifi-14f30893a9cb85fca55a8e68848d8f319c4dbbed.zip
Merge "wifi: Address the improper scan behavior on PNO failure"
-rwxr-xr-xservice/java/com/android/server/wifi/WifiStateMachine.java19
1 files changed, 14 insertions, 5 deletions
diff --git a/service/java/com/android/server/wifi/WifiStateMachine.java b/service/java/com/android/server/wifi/WifiStateMachine.java
index fc12b8e68..7669ec12f 100755
--- a/service/java/com/android/server/wifi/WifiStateMachine.java
+++ b/service/java/com/android/server/wifi/WifiStateMachine.java
@@ -201,6 +201,9 @@ public class WifiStateMachine extends StateMachine {
/* Chipset supports background scan */
private final boolean mBackgroundScanSupported;
+ /* Flag to verify backgroundScan is configured successfully */
+ private boolean mBackgroundScanConfigured = false;
+
private String mInterfaceName;
/* Tethering interface could be separate from wlan interface */
private String mTetherInterfaceName;
@@ -7749,9 +7752,9 @@ public class WifiStateMachine extends StateMachine {
}
break;
case CMD_PNO_PERIODIC_SCAN:
- if ((message.arg1 == mPnoPeriodicScanToken) &&
- (mEnableBackgroundScan) &&
- (mWifiConfigStore.getConfiguredNetworks().size() != 0)) {
+ if ((mBackgroundScanConfigured == false) &&
+ (message.arg1 == mPnoPeriodicScanToken) &&
+ (mEnableBackgroundScan)) {
startScan(UNKNOWN_SCAN_SOURCE, -1, null, null);
sendMessageDelayed(obtainMessage(CMD_PNO_PERIODIC_SCAN,
++mPnoPeriodicScanToken, 0),
@@ -7835,6 +7838,9 @@ public class WifiStateMachine extends StateMachine {
(mWifiConfigStore.getConfiguredNetworks().size() != 0)) {
if (!mWifiNative.enableBackgroundScan(true)) {
handlePnoFailError();
+ } else {
+ if (DBG) log("Stop periodic scan on PNO success");
+ mBackgroundScanConfigured = true;
}
}
case CMD_RECONNECT:
@@ -8435,12 +8441,15 @@ public class WifiStateMachine extends StateMachine {
}
private void handlePnoFailError() {
+ /* PNO should not fail when P2P is not connected and there are
+ saved profiles */
if (!mP2pConnected.get() &&
(mWifiConfigStore.getConfiguredNetworks().size() == 0)) {
return;
}
- if (mEnableBackgroundScan &&
- (mWifiConfigStore.getConfiguredNetworks().size() != 0)) {
+ /* Trigger a periodic scan for every 300Sec if PNO fails */
+ if (mEnableBackgroundScan) {
+ mBackgroundScanConfigured = false;
sendMessageDelayed(obtainMessage(CMD_PNO_PERIODIC_SCAN,
++mPnoPeriodicScanToken, 0),
mDefaultFrameworkScanIntervalMs);