diff options
Diffstat (limited to 'wifi')
-rw-r--r-- | wifi/java/android/net/wifi/IWifiManager.aidl | 2 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/WifiManager.java | 2 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/WifiStateMachine.java | 33 | ||||
-rw-r--r-- | wifi/java/android/net/wifi/WifiWatchdogStateMachine.java | 7 |
4 files changed, 33 insertions, 11 deletions
diff --git a/wifi/java/android/net/wifi/IWifiManager.aidl b/wifi/java/android/net/wifi/IWifiManager.aidl index 4f68ca0..5a1928c 100644 --- a/wifi/java/android/net/wifi/IWifiManager.aidl +++ b/wifi/java/android/net/wifi/IWifiManager.aidl @@ -119,7 +119,7 @@ interface IWifiManager boolean requestBatchedScan(in BatchedScanSettings requested, IBinder binder); - void stopBatchedScan(in BatchedScanSettings requested, IBinder binder); + void stopBatchedScan(in BatchedScanSettings requested); List<BatchedScanResult> getBatchedScanResults(String callingPackage); diff --git a/wifi/java/android/net/wifi/WifiManager.java b/wifi/java/android/net/wifi/WifiManager.java index 3223cb3..95ee85b 100644 --- a/wifi/java/android/net/wifi/WifiManager.java +++ b/wifi/java/android/net/wifi/WifiManager.java @@ -826,7 +826,7 @@ public class WifiManager { */ public void stopBatchedScan(BatchedScanSettings requested) { try { - mService.stopBatchedScan(requested, new Binder()); + mService.stopBatchedScan(requested); } catch (RemoteException e) {} } diff --git a/wifi/java/android/net/wifi/WifiStateMachine.java b/wifi/java/android/net/wifi/WifiStateMachine.java index ad89716..94d9288 100644 --- a/wifi/java/android/net/wifi/WifiStateMachine.java +++ b/wifi/java/android/net/wifi/WifiStateMachine.java @@ -229,6 +229,7 @@ public class WifiStateMachine extends StateMachine { private NetworkInfo mNetworkInfo; private SupplicantStateTracker mSupplicantStateTracker; private DhcpStateMachine mDhcpStateMachine; + private boolean mDhcpActive = false; private class InterfaceObserver extends BaseNetworkObserver { private WifiStateMachine mWifiStateMachine; @@ -849,6 +850,11 @@ public class WifiStateMachine extends StateMachine { } private void startBatchedScan() { + if (mDhcpActive) { + if (DBG) log("not starting Batched Scans due to DHCP"); + return; + } + // first grab any existing data retrieveBatchedScanData(); @@ -916,8 +922,10 @@ public class WifiStateMachine extends StateMachine { private void stopBatchedScan() { mAlarmManager.cancel(mBatchedScanIntervalIntent); - retrieveBatchedScanData(); - mWifiNative.setBatchedScanSettings(null); + if (mBatchedScanSettings != null) { + retrieveBatchedScanData(); + mWifiNative.setBatchedScanSettings(null); + } } private void setNextBatchedAlarm(int scansExpected) { @@ -2203,6 +2211,7 @@ public class WifiStateMachine extends StateMachine { } void handlePreDhcpSetup() { + mDhcpActive = true; if (!mBluetoothConnectionActive) { /* * There are problems setting the Wi-Fi driver's power @@ -2232,6 +2241,8 @@ public class WifiStateMachine extends StateMachine { setSuspendOptimizationsNative(SUSPEND_DUE_TO_DHCP, false); mWifiNative.setPowerSave(false); + stopBatchedScan(); + /* P2p discovery breaks dhcp, shut it down in order to get through this */ Message msg = new Message(); msg.what = WifiP2pService.BLOCK_DISCOVERY; @@ -2270,6 +2281,12 @@ public class WifiStateMachine extends StateMachine { // Set the coexistence mode back to its default value mWifiNative.setBluetoothCoexistenceMode( mWifiNative.BLUETOOTH_COEXISTENCE_MODE_SENSE); + + mDhcpActive = false; + + if (mBatchedScanSettings != null) { + startBatchedScan(); + } } private void handleSuccessfulIpConfiguration(DhcpResults dhcpResults) { @@ -2917,6 +2934,8 @@ public class WifiStateMachine extends StateMachine { mWifiNative.stopFilteringMulticastV4Packets(); } + mDhcpActive = false; + if (mBatchedScanSettings != null) { startBatchedScan(); } @@ -3486,6 +3505,14 @@ public class WifiStateMachine extends StateMachine { } @Override + public void exit() { + // if we're leaving before this is done, cleanup + if (mDhcpActive) { + handlePostDhcpSetup(); + } + } + + @Override public boolean processMessage(Message message) { switch (message.what) { case DhcpStateMachine.CMD_PRE_DHCP_ACTION: @@ -3677,7 +3704,7 @@ public class WifiStateMachine extends StateMachine { transitionTo(mCaptivePortalCheckState); break; default: - log(getName() + " what=" + message.what + " NOT_HANDLED"); + if (DBG) log(getName() + " what=" + message.what + " NOT_HANDLED"); return NOT_HANDLED; } return HANDLED; diff --git a/wifi/java/android/net/wifi/WifiWatchdogStateMachine.java b/wifi/java/android/net/wifi/WifiWatchdogStateMachine.java index eb47a4a..6278c89 100644 --- a/wifi/java/android/net/wifi/WifiWatchdogStateMachine.java +++ b/wifi/java/android/net/wifi/WifiWatchdogStateMachine.java @@ -75,8 +75,7 @@ import java.text.DecimalFormat; */ public class WifiWatchdogStateMachine extends StateMachine { - /* STOPSHIP: Keep this configurable for debugging until ship */ - private static boolean DBG = false; + private static final boolean DBG = false; private static final int BASE = Protocol.BASE_WIFI_WATCHDOG; @@ -697,10 +696,6 @@ public class WifiWatchdogStateMachine extends StateMachine { switch (msg.what) { case EVENT_WATCHDOG_SETTINGS_CHANGE: updateSettings(); - // STOPSHIP: Remove this at ship - logd("Updated secure settings and turned debug on"); - DBG = true; - if (mPoorNetworkDetectionEnabled) { transitionTo(mOnlineWatchState); } else { |