From 6510438b98f7a69b0def933c3b231ddbecfc30dc Mon Sep 17 00:00:00 2001 From: Lucas Dupin Date: Tue, 4 Dec 2018 11:53:42 -0800 Subject: [PATCH] Fix prox and wake sensor conflict Test: manual Bug: 111414690 Bug: 111405682 Change-Id: I5c625936781bb8404c4b1507a164c9dfe7d76f29 --- .../src/com/android/systemui/doze/DozeSensors.java | 9 ++++++--- .../src/com/android/systemui/doze/DozeTriggers.java | 5 +++-- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java index bf8e04db976b6..7e778437b7d7c 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeSensors.java @@ -401,7 +401,9 @@ public class DozeSensors { } mCallback.onSensorPulse(mPulseReason, sensorPerformsProxCheck, screenX, screenY, event.values); - updateListener(); // reregister, this sensor only fires once + if (!mRegistered) { + updateListener(); // reregister, this sensor only fires once + } })); } @@ -440,7 +442,9 @@ public class DozeSensors { mRegistered = false; mCallback.onSensorPulse(mPulseReason, true /* sensorPerformsProxCheck */, -1, -1, event.getValues()); - updateListener(); // reregister, this sensor only fires once + if (!mRegistered) { + updateListener(); // reregister, this sensor only fires once + } })); }; @@ -487,7 +491,6 @@ public class DozeSensors { } return sb.append(']').toString(); } - } public interface Callback { diff --git a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java index bad01480d6771..afe9a74da48a5 100644 --- a/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java +++ b/packages/SystemUI/src/com/android/systemui/doze/DozeTriggers.java @@ -184,6 +184,7 @@ public class DozeTriggers implements DozeMachine.Part { if (DEBUG) Log.i(TAG, "Prox changed, ignore touch = " + ignoreTouch); mDozeHost.onIgnoreTouchWhilePulsing(ignoreTouch); } + if (far && (paused || pausing)) { if (DEBUG) Log.i(TAG, "Prox FAR, unpausing AOD"); mMachine.requestState(DozeMachine.State.DOZE_AOD); @@ -205,13 +206,13 @@ public class DozeTriggers implements DozeMachine.Part { // In pocket, drop event. return; } - if (pausing || paused) { + if (mMachine.getState() == DozeMachine.State.DOZE) { mMachine.requestState(DozeMachine.State.DOZE_AOD); } }, false /* alreadyPerformedProxCheck */, DozeLog.REASON_SENSOR_WAKE_UP); } else { if (!pausing && !paused) { - mMachine.requestState(DozeMachine.State.DOZE_AOD_PAUSING); + mMachine.requestState(DozeMachine.State.DOZE); } } }