From cd139a6df1c098e7fc65abe6516d70519ebc568a Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Fri, 16 Dec 2016 12:23:51 -0800 Subject: [PATCH] Doze: Fix crash when suppressing pulse Fixes a crash due to an overzealous state validation. Change-Id: I363c13206c890a2be56615663f89d80ac256a991 Test: runtest -x packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java Fixes: 33463320 --- .../src/com/android/systemui/doze/DozeMachine.java | 3 ++- .../src/com/android/systemui/doze/DozeMachineTest.java | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java b/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java index 13e047cceb30d..6a868d53d409d 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeMachine.java @@ -218,7 +218,8 @@ public class DozeMachine { Preconditions.checkState(mState == State.DOZE_REQUEST_PULSE); break; case DOZE_PULSE_DONE: - Preconditions.checkState(mState == State.DOZE_PULSING); + Preconditions.checkState( + mState == State.DOZE_REQUEST_PULSE || mState == State.DOZE_PULSING); break; default: break; 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 8b99d725fd734..c3948258f11c7 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/doze/DozeMachineTest.java @@ -212,6 +212,16 @@ public class DozeMachineTest { mMachine.requestState(DOZE_PULSE_DONE); } + @Test + @UiThreadTest + public void testSuppressingPulse_doesntCrash() { + mMachine.requestState(INITIALIZED); + + mMachine.requestState(DOZE); + mMachine.requestState(DOZE_REQUEST_PULSE); + mMachine.requestState(DOZE_PULSE_DONE); + } + @Test @UiThreadTest public void testScreen_offInDoze() {