diff --git a/services/core/java/com/android/server/display/WakelockController.java b/services/core/java/com/android/server/display/WakelockController.java index 6511f4f4fa84d..1e13974f6ef4a 100644 --- a/services/core/java/com/android/server/display/WakelockController.java +++ b/services/core/java/com/android/server/display/WakelockController.java @@ -38,7 +38,9 @@ public final class WakelockController { public static final int WAKE_LOCK_STATE_CHANGED = 4; public static final int WAKE_LOCK_UNFINISHED_BUSINESS = 5; - private static final int WAKE_LOCK_MAX = WAKE_LOCK_UNFINISHED_BUSINESS; + @VisibleForTesting + static final int WAKE_LOCK_MAX = WAKE_LOCK_UNFINISHED_BUSINESS; + private static final boolean DEBUG = false; @IntDef(flag = true, prefix = "WAKE_LOCK_", value = { @@ -132,7 +134,7 @@ public final class WakelockController { * A utility to release all the wakelock acquired by the system */ public void releaseAll() { - for (int i = WAKE_LOCK_PROXIMITY_POSITIVE; i < WAKE_LOCK_MAX; i++) { + for (int i = WAKE_LOCK_PROXIMITY_POSITIVE; i <= WAKE_LOCK_MAX; i++) { releaseWakelockInternal(i); } } diff --git a/services/tests/mockingservicestests/src/com/android/server/display/WakelockControllerTest.java b/services/tests/mockingservicestests/src/com/android/server/display/WakelockControllerTest.java index 07a81ffb8e18d..c23d4b19cd3ac 100644 --- a/services/tests/mockingservicestests/src/com/android/server/display/WakelockControllerTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/display/WakelockControllerTest.java @@ -244,6 +244,15 @@ public final class WakelockControllerTest { verifyZeroInteractions(mDisplayPowerCallbacks); } + @Test + public void testReleaseAll() throws Exception { + // Use WAKE_LOCK_MAX to verify it has been correctly set and used in releaseAll(). + verifyWakelockAcquisition(WakelockController.WAKE_LOCK_MAX, + () -> mWakelockController.hasUnfinishedBusiness()); + mWakelockController.releaseAll(); + assertFalse(mWakelockController.hasUnfinishedBusiness()); + } + private void verifyWakelockAcquisitionAndReaquisition(int wakelockId, Callable isWakelockAcquiredCallable) throws Exception { @@ -284,6 +293,4 @@ public final class WakelockControllerTest { assertFalse(mWakelockController.releaseWakelock(wakelockId)); assertFalse(isWakelockAcquiredCallable.call()); } - - }