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

Commit 0e97a42d authored by Santos Cordon's avatar Santos Cordon Committed by Automerger Merge Worker
Browse files

Merge "Fix off-by-one error when releasing wakelocks." into udc-dev am: a06430ea

parents 011a3802 a06430ea
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -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);
        }
    }
+9 −2
Original line number Diff line number Diff line
@@ -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<Boolean> isWakelockAcquiredCallable)
            throws Exception {
@@ -284,6 +293,4 @@ public final class WakelockControllerTest {
        assertFalse(mWakelockController.releaseWakelock(wakelockId));
        assertFalse(isWakelockAcquiredCallable.call());
    }


}