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

Commit f7eacab7 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents 3c7d4495 23537575
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);