summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Adrian Roos <roosa@google.com> 2016-11-16 19:56:19 -0800
committer Adrian Roos <roosa@google.com> 2016-11-16 20:15:09 -0800
commitae0c5e8d2c65b84b644150e2774a0dbdeffe82aa (patch)
treec9a8c6a46bcb1330bbc0b2d88d92f1edf73c72b1
parent01a96637859e03e77edbdca507d738acdc788a8a (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.java2
-rw-r--r--packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java13
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);