diff options
author | Roshan Pius <rpius@google.com> | 2020-05-28 04:46:53 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-05-28 04:46:53 +0000 |
commit | c5d1fad63ff18042e65de7d29908fcb4457c9aa4 (patch) | |
tree | 70371513815ca109d42533b226f5b0fc4332bb1b | |
parent | e1718d217e401c2da9029d01ec99e1b335de0bb4 (diff) | |
parent | 2643b8eef2007c18d2e0e7d722e0372858bc66ed (diff) |
Merge "WifiWakeup: Ignore wakeup start if no saved networks or suggestions" into rvc-dev
-rw-r--r-- | service/java/com/android/server/wifi/WakeupController.java | 4 | ||||
-rw-r--r-- | tests/wifitests/src/com/android/server/wifi/WakeupControllerTest.java | 22 |
2 files changed, 22 insertions, 4 deletions
diff --git a/service/java/com/android/server/wifi/WakeupController.java b/service/java/com/android/server/wifi/WakeupController.java index b003b74b9..d9882dbf3 100644 --- a/service/java/com/android/server/wifi/WakeupController.java +++ b/service/java/com/android/server/wifi/WakeupController.java @@ -240,6 +240,10 @@ public class WakeupController { */ public void start() { Log.d(TAG, "start()"); + if (getGoodSavedNetworksAndSuggestions().isEmpty()) { + Log.i(TAG, "Ignore wakeup start since there are no good networks."); + return; + } mWifiInjector.getWifiScanner().registerScanListener( new HandlerExecutor(mHandler), mScanListener); diff --git a/tests/wifitests/src/com/android/server/wifi/WakeupControllerTest.java b/tests/wifitests/src/com/android/server/wifi/WakeupControllerTest.java index ed2ccce5e..9824c5b23 100644 --- a/tests/wifitests/src/com/android/server/wifi/WakeupControllerTest.java +++ b/tests/wifitests/src/com/android/server/wifi/WakeupControllerTest.java @@ -103,6 +103,10 @@ public class WakeupControllerTest extends WifiBaseTest { .thenReturn(new int[]{DFS_CHANNEL_FREQ}); when(mWifiSettingsStore.handleWifiToggled(anyBoolean())).thenReturn(true); + // Saved network needed to start wake. + WifiConfiguration openNetwork = WifiConfigurationTestUtil.createOpenNetwork(); + openNetwork.getNetworkSelectionStatus().setHasEverConnected(true); + when(mWifiConfigManager.getSavedNetworks(anyInt())).thenReturn(Arrays.asList(openNetwork)); mLooper = new TestLooper(); @@ -255,6 +259,19 @@ public class WakeupControllerTest extends WifiBaseTest { verify(mWifiWakeMetrics, never()).recordStartEvent(anyInt()); } + + /** + * Verify that start does not set the wakeup lock when feature is disabled. + */ + @Test + public void startDoesNotSetWakeupLockWhenNoSavedNetworksOrSuggestions() { + when(mWifiConfigManager.getSavedNetworks(anyInt())).thenReturn(Collections.emptyList()); + initializeWakeupController(false /* enabled */); + mWakeupController.start(); + verify(mWakeupLock, never()).setLock(any()); + verify(mWifiWakeMetrics, never()).recordStartEvent(anyInt()); + } + /** * If the controller is already active, verify that start() is ignored and no setup is done. */ @@ -537,8 +554,7 @@ public class WakeupControllerTest extends WifiBaseTest { */ @Test public void onResultsUpdatesWakeupLockWithOnlySavedNetworks() { - // no saved configs - when(mWifiConfigManager.getSavedNetworks(anyInt())).thenReturn(Collections.emptyList()); + // no matching saved configs initializeWakeupController(true /* enabled */); mWakeupController.start(); @@ -713,7 +729,6 @@ public class WakeupControllerTest extends WifiBaseTest { when(mClock.getElapsedSinceBootMillis()).thenReturn(0L, (long) (0.8 * WakeupController.LAST_DISCONNECT_TIMEOUT_MILLIS)); ScanResultMatchInfo matchInfo = ScanResultMatchInfo.fromScanResult(mTestScanResult); - when(mWifiConfigManager.getSavedNetworks(anyInt())).thenReturn(Collections.emptyList()); when(mWifiScanner.getSingleScanResults()).thenReturn(Collections.emptyList()); initializeWakeupController(true); @@ -739,7 +754,6 @@ public class WakeupControllerTest extends WifiBaseTest { when(mClock.getElapsedSinceBootMillis()).thenReturn(0L, (long) (1.2 * WakeupController.LAST_DISCONNECT_TIMEOUT_MILLIS)); ScanResultMatchInfo matchInfo = ScanResultMatchInfo.fromScanResult(mTestScanResult); - when(mWifiConfigManager.getSavedNetworks(anyInt())).thenReturn(Collections.emptyList()); when(mWifiScanner.getSingleScanResults()).thenReturn(Collections.emptyList()); initializeWakeupController(true); |