Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c237c204 authored by Robert Greenwalt's avatar Robert Greenwalt Committed by Android (Google) Code Review
Browse files

Merge "Supsend/resume batched scans around dhcp." into klp-dev

parents 540784f9 81fec6be
Loading
Loading
Loading
Loading
+30 −3
Original line number Original line Diff line number Diff line
@@ -229,6 +229,7 @@ public class WifiStateMachine extends StateMachine {
    private NetworkInfo mNetworkInfo;
    private NetworkInfo mNetworkInfo;
    private SupplicantStateTracker mSupplicantStateTracker;
    private SupplicantStateTracker mSupplicantStateTracker;
    private DhcpStateMachine mDhcpStateMachine;
    private DhcpStateMachine mDhcpStateMachine;
    private boolean mDhcpActive = false;


    private class InterfaceObserver extends BaseNetworkObserver {
    private class InterfaceObserver extends BaseNetworkObserver {
        private WifiStateMachine mWifiStateMachine;
        private WifiStateMachine mWifiStateMachine;
@@ -849,6 +850,11 @@ public class WifiStateMachine extends StateMachine {
    }
    }


    private void startBatchedScan() {
    private void startBatchedScan() {
        if (mDhcpActive) {
            if (DBG) log("not starting Batched Scans due to DHCP");
            return;
        }

        // first grab any existing data
        // first grab any existing data
        retrieveBatchedScanData();
        retrieveBatchedScanData();


@@ -916,9 +922,11 @@ public class WifiStateMachine extends StateMachine {


    private void stopBatchedScan() {
    private void stopBatchedScan() {
        mAlarmManager.cancel(mBatchedScanIntervalIntent);
        mAlarmManager.cancel(mBatchedScanIntervalIntent);
        if (mBatchedScanSettings != null) {
            retrieveBatchedScanData();
            retrieveBatchedScanData();
            mWifiNative.setBatchedScanSettings(null);
            mWifiNative.setBatchedScanSettings(null);
        }
        }
    }


    private void setNextBatchedAlarm(int scansExpected) {
    private void setNextBatchedAlarm(int scansExpected) {


@@ -2203,6 +2211,7 @@ public class WifiStateMachine extends StateMachine {
    }
    }


    void handlePreDhcpSetup() {
    void handlePreDhcpSetup() {
        mDhcpActive = true;
        if (!mBluetoothConnectionActive) {
        if (!mBluetoothConnectionActive) {
            /*
            /*
             * There are problems setting the Wi-Fi driver's power
             * 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);
        setSuspendOptimizationsNative(SUSPEND_DUE_TO_DHCP, false);
        mWifiNative.setPowerSave(false);
        mWifiNative.setPowerSave(false);


        stopBatchedScan();

        /* P2p discovery breaks dhcp, shut it down in order to get through this */
        /* P2p discovery breaks dhcp, shut it down in order to get through this */
        Message msg = new Message();
        Message msg = new Message();
        msg.what = WifiP2pService.BLOCK_DISCOVERY;
        msg.what = WifiP2pService.BLOCK_DISCOVERY;
@@ -2270,6 +2281,12 @@ public class WifiStateMachine extends StateMachine {
        // Set the coexistence mode back to its default value
        // Set the coexistence mode back to its default value
        mWifiNative.setBluetoothCoexistenceMode(
        mWifiNative.setBluetoothCoexistenceMode(
                mWifiNative.BLUETOOTH_COEXISTENCE_MODE_SENSE);
                mWifiNative.BLUETOOTH_COEXISTENCE_MODE_SENSE);

        mDhcpActive = false;

        if (mBatchedScanSettings != null) {
            startBatchedScan();
        }
    }
    }


    private void handleSuccessfulIpConfiguration(DhcpResults dhcpResults) {
    private void handleSuccessfulIpConfiguration(DhcpResults dhcpResults) {
@@ -2917,6 +2934,8 @@ public class WifiStateMachine extends StateMachine {
                mWifiNative.stopFilteringMulticastV4Packets();
                mWifiNative.stopFilteringMulticastV4Packets();
            }
            }


            mDhcpActive = false;

            if (mBatchedScanSettings != null) {
            if (mBatchedScanSettings != null) {
                startBatchedScan();
                startBatchedScan();
            }
            }
@@ -3485,6 +3504,14 @@ public class WifiStateMachine extends StateMachine {
            }
            }
        }
        }


        @Override
        public void exit() {
            // if we're leaving before this is done, cleanup
            if (mDhcpActive) {
                handlePostDhcpSetup();
            }
        }

        @Override
        @Override
        public boolean processMessage(Message message) {
        public boolean processMessage(Message message) {
            switch (message.what) {
            switch (message.what) {
@@ -3677,7 +3704,7 @@ public class WifiStateMachine extends StateMachine {
                    transitionTo(mCaptivePortalCheckState);
                    transitionTo(mCaptivePortalCheckState);
                    break;
                    break;
                default:
                default:
                    log(getName() + " what=" + message.what + " NOT_HANDLED");
                    if (DBG) log(getName() + " what=" + message.what + " NOT_HANDLED");
                    return NOT_HANDLED;
                    return NOT_HANDLED;
            }
            }
            return HANDLED;
            return HANDLED;