diff --git a/packages/SystemUI/src/com/android/systemui/util/sensors/ThresholdSensorImpl.java b/packages/SystemUI/src/com/android/systemui/util/sensors/ThresholdSensorImpl.java index 546333b3a073b..333e8da2a84f3 100644 --- a/packages/SystemUI/src/com/android/systemui/util/sensors/ThresholdSensorImpl.java +++ b/packages/SystemUI/src/com/android/systemui/util/sensors/ThresholdSensorImpl.java @@ -167,7 +167,7 @@ class ThresholdSensorImpl implements ThresholdSensor { private void onSensorEvent(boolean below, long timestampNs) { Assert.isMainThread(); - if (mLastBelow != null && mLastBelow == below) { + if (!mRegistered || mLastBelow != null && mLastBelow == below) { return; } mLastBelow = below; diff --git a/packages/SystemUI/tests/src/com/android/systemui/util/sensors/ThresholdSensorImplTest.java b/packages/SystemUI/tests/src/com/android/systemui/util/sensors/ThresholdSensorImplTest.java index 09ec8e55efd62..70b92dc014472 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/util/sensors/ThresholdSensorImplTest.java +++ b/packages/SystemUI/tests/src/com/android/systemui/util/sensors/ThresholdSensorImplTest.java @@ -226,6 +226,23 @@ public class ThresholdSensorImplTest extends SysuiTestCase { waitForSensorManager(); } + @Test + public void testAlertAfterPause() { + TestableListener listener = new TestableListener(); + + mThresholdSensor.register(listener); + waitForSensorManager(); + mFakeProximitySensor.sendProximityResult(false); + assertTrue(listener.mBelow); + assertEquals(1, listener.mCallCount); + + mThresholdSensor.pause(); + + mFakeProximitySensor.sendProximityResult(false); + assertTrue(listener.mBelow); + assertEquals(1, listener.mCallCount); + } + static class TestableListener implements ThresholdSensor.Listener { boolean mBelow; long mTimestampNs;