Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 064867a9 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Keep secondary prox registered when covered." into rvc-d1-dev am: f7eacab7

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11725028

Change-Id: I4a5aa300c9bc54a6c2d13784d46a19f9b92f7391
parents be0b5913 f7eacab7
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -83,20 +83,21 @@ public class ProximitySensor implements ThresholdSensor {
    private ThresholdSensor.Listener mSecondaryEventListener = new ThresholdSensor.Listener() {
        @Override
        public void onThresholdCrossed(ThresholdSensorEvent event) {
            // This sensor should only be used briefly. Turn it off as soon as we get a reading.
            mSecondaryThresholdSensor.pause();

            // Only check the secondary as long as the primary thinks we're near.
            if (!mLastPrimaryEvent.getBelow()) {
                mSecondaryThresholdSensor.pause();
                mCancelSecondaryRunnable = null;
                return;
            }
            logDebug("Secondary sensor event: " + event.getBelow() + ".");

            // This sensor should only be used briefly when uncovered.
            if (!event.getBelow()) {
                mSecondaryThresholdSensor.pause();
                // Check this sensor again in a moment.
                mCancelSecondaryRunnable = mDelayableExecutor.executeDelayed(
                        mSecondaryThresholdSensor::resume, SECONDARY_PING_INTERVAL_MS);

            }
            onSensorEvent(event);
        }
    };
+1 −1
Original line number Diff line number Diff line
@@ -51,7 +51,7 @@ class ThresholdSensorImpl implements ThresholdSensor {
        @Override
        public void onSensorChanged(SensorEvent event) {
            boolean below = event.values[0] < mThreshold;
            boolean above = event.values[0] > mThresholdLatch;
            boolean above = event.values[0] >= mThresholdLatch;
            logDebug("Sensor value: " + event.values[0]);
            onSensorEvent(below, above, event.timestamp);
        }
+10 −11
Original line number Diff line number Diff line
@@ -86,10 +86,9 @@ public class ProximitySensorDualTest extends SysuiTestCase {
        // Trigger second sensor.
        mThresholdSensorSecondary.triggerEvent(true, 0);
        assertFalse(mThresholdSensorPrimary.isPaused());
        assertTrue(mThresholdSensorSecondary.isPaused());
        assertFalse(mThresholdSensorSecondary.isPaused());
        assertTrue(listener.mLastEvent.getBelow());
        assertEquals(1, listener.mCallCount);
        assertTrue(mThresholdSensorSecondary.isPaused());

        mProximitySensor.unregister(listener);
    }
@@ -109,23 +108,23 @@ public class ProximitySensorDualTest extends SysuiTestCase {
        assertNull(listener.mLastEvent);
        assertEquals(0, listener.mCallCount);

        // Trigger second sensor.
        // Trigger second sensor. Second sensor remains registered.
        mThresholdSensorSecondary.triggerEvent(true, 0);
        assertTrue(listener.mLastEvent.getBelow());
        assertEquals(1, listener.mCallCount);
        assertTrue(mThresholdSensorSecondary.isPaused());

        // Advance time. Second sensor should resume.
        mFakeExecutor.advanceClockToNext();
        mFakeExecutor.runNextReady();
        assertFalse(mThresholdSensorSecondary.isPaused());

        // Triggering should pause again.
        // Triggering above should pause.
        mThresholdSensorSecondary.triggerEvent(false, 0);
        assertFalse(listener.mLastEvent.getBelow());
        assertEquals(2, listener.mCallCount);
        assertTrue(mThresholdSensorSecondary.isPaused());

        // Advance time. Second sensor should resume.
        mFakeExecutor.advanceClockToNext();
        mFakeExecutor.runNextReady();
        assertFalse(mThresholdSensorSecondary.isPaused());

        mProximitySensor.unregister(listener);
    }

@@ -143,7 +142,7 @@ public class ProximitySensorDualTest extends SysuiTestCase {
        mThresholdSensorPrimary.triggerEvent(true, 0);
        mThresholdSensorSecondary.triggerEvent(true, 0);
        assertFalse(mThresholdSensorPrimary.isPaused());
        assertTrue(mThresholdSensorSecondary.isPaused());
        assertFalse(mThresholdSensorSecondary.isPaused());
        assertTrue(listener.mLastEvent.getBelow());
        assertEquals(1, listener.mCallCount);

@@ -165,7 +164,7 @@ public class ProximitySensorDualTest extends SysuiTestCase {
        mThresholdSensorPrimary.triggerEvent(true, 0);
        mThresholdSensorSecondary.triggerEvent(true, 0);
        assertFalse(mThresholdSensorPrimary.isPaused());
        assertTrue(mThresholdSensorSecondary.isPaused());
        assertFalse(mThresholdSensorSecondary.isPaused());
        assertTrue(listener.mLastEvent.getBelow());
        assertEquals(1, listener.mCallCount);

+1 −1
Original line number Diff line number Diff line
@@ -259,7 +259,7 @@ public class ThresholdSensorImplTest extends SysuiTestCase {
        assertTrue(listener.mBelow);
        assertEquals(1, listener.mCallCount);

        sensor.sendSensorEvent(highValue + 1);
        sensor.sendSensorEvent(highValue);

        assertFalse(listener.mBelow);
        assertEquals(2, listener.mCallCount);