OSDN Git Service

Fix illegal state in doze machine
authorLucas Dupin <dupin@google.com>
Fri, 1 Feb 2019 20:57:19 +0000 (12:57 -0800)
committerLucas Dupin <dupin@google.com>
Fri, 1 Feb 2019 20:57:19 +0000 (12:57 -0800)
Test: trigger lock screen sensor
Change-Id: Id3c09fc98c3a916cb6d6535a3f7dfcf728ec3c3f
Fixes: 123715942

packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java

index 8a35e70..873fbc2 100644 (file)
@@ -142,7 +142,7 @@ public class DozeTriggers implements DozeMachine.Part {
         boolean wakeEvent = rawValues != null && rawValues.length > 0 && rawValues[0] != 0;
 
         if (isWakeDisplay) {
-            onWakeScreen(wakeEvent);
+            onWakeScreen(wakeEvent, mMachine.getState());
         } else if (isLongPress || isWakeLockScreen) {
             requestPulse(pulseReason, sensorPerformedProxCheck);
         } else {
@@ -195,9 +195,8 @@ public class DozeTriggers implements DozeMachine.Part {
         }
     }
 
-    private void onWakeScreen(boolean wake) {
+    private void onWakeScreen(boolean wake, DozeMachine.State state) {
         DozeLog.traceWakeDisplay(wake);
-        DozeMachine.State state = mMachine.getState();
         boolean paused = (state == DozeMachine.State.DOZE_AOD_PAUSED);
         boolean pausing = (state == DozeMachine.State.DOZE_AOD_PAUSING);
         sWakeDisplaySensorState = wake;
@@ -208,7 +207,7 @@ public class DozeTriggers implements DozeMachine.Part {
                     // In pocket, drop event.
                     return;
                 }
-                if (mMachine.getState() == DozeMachine.State.DOZE) {
+                if (state == DozeMachine.State.DOZE) {
                     mMachine.requestState(DozeMachine.State.DOZE_AOD);
                 }
             }, false /* alreadyPerformedProxCheck */, DozeLog.REASON_SENSOR_WAKE_UP);
@@ -236,7 +235,7 @@ public class DozeTriggers implements DozeMachine.Part {
                 }
                 mDozeSensors.setListening(true);
                 if (newState == DozeMachine.State.DOZE_AOD && !sWakeDisplaySensorState) {
-                    onWakeScreen(false);
+                    onWakeScreen(false, newState);
                 }
                 break;
             case DOZE_AOD_PAUSED: