diff options
| author | 2016-11-16 19:56:19 -0800 | |
|---|---|---|
| committer | 2016-11-16 20:15:09 -0800 | |
| commit | ae0c5e8d2c65b84b644150e2774a0dbdeffe82aa (patch) | |
| tree | c9a8c6a46bcb1330bbc0b2d88d92f1edf73c72b1 | |
| parent | 01a96637859e03e77edbdca507d738acdc788a8a (diff) | |
Doze: Fix WakeLock bug
Change-Id: I3d687bbf82173723c420058867531a970d1f46cb
Fixes: 32857549
Test: runtest -x $(gettop)/frameworks/base/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java | 2 | ||||
| -rw-r--r-- | packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java | 13 |
2 files changed, 15 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java b/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java index c633aa15c8e3..951b27f75aeb 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java @@ -225,8 +225,10 @@ public class DozeMachine { boolean newPolicy = wakeLockPolicy(newState); if (mWakeLockHeldForCurrentState && !newPolicy) { mWakeLock.release(); + mWakeLockHeldForCurrentState = false; } else if (!mWakeLockHeldForCurrentState && newPolicy) { mWakeLock.acquire(); + mWakeLockHeldForCurrentState = true; } } diff --git a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java index ba7c923efe71..863f0e5a9897 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java @@ -189,6 +189,19 @@ public class DozeMachineTest { @Test @UiThreadTest + public void testWakeLock_releasedAfterPulse() { + mMachine.requestState(INITIALIZED); + + mMachine.requestState(DOZE); + mMachine.requestState(DOZE_REQUEST_PULSE); + mMachine.requestState(DOZE_PULSING); + mMachine.requestState(DOZE_PULSE_DONE); + + assertFalse(mWakeLockFake.isHeld()); + } + + @Test + @UiThreadTest public void testScreen_offInDoze() { mMachine.requestState(INITIALIZED); |