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
This commit is contained in:
Adrian Roos
2016-11-16 19:56:19 -08:00
parent 01a9663785
commit ae0c5e8d2c
2 changed files with 15 additions and 0 deletions

View File

@@ -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;
}
}

View File

@@ -187,6 +187,19 @@ public class DozeMachineTest {
assertFalse(mWakeLockFake.isHeld());
}
@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() {