Merge "Prevent NPE in ProximitySensor." into rvc-d1-dev am: a88064cf5b
Change-Id: I5ebf37c0cf9a578eb7c853ba78e8ec87e84ca4e1
This commit is contained in:
@@ -92,11 +92,11 @@ public class ProximitySensor implements ThresholdSensor {
|
|||||||
}
|
}
|
||||||
logDebug("Secondary sensor event: " + event.getBelow() + ".");
|
logDebug("Secondary sensor event: " + event.getBelow() + ".");
|
||||||
|
|
||||||
onSensorEvent(event);
|
|
||||||
|
|
||||||
// Check this sensor again in a moment.
|
// Check this sensor again in a moment.
|
||||||
mCancelSecondaryRunnable = mDelayableExecutor.executeDelayed(
|
mCancelSecondaryRunnable = mDelayableExecutor.executeDelayed(
|
||||||
mSecondaryThresholdSensor::resume, SECONDARY_PING_INTERVAL_MS);
|
mSecondaryThresholdSensor::resume, SECONDARY_PING_INTERVAL_MS);
|
||||||
|
|
||||||
|
onSensorEvent(event);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -262,6 +262,37 @@ public class ProximitySensorDualTest extends SysuiTestCase {
|
|||||||
mProximitySensor.unregister(listener);
|
mProximitySensor.unregister(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testSecondaryCancelsSecondary() {
|
||||||
|
TestableListener listener = new TestableListener();
|
||||||
|
ThresholdSensor.Listener cancelingListener = new ThresholdSensor.Listener() {
|
||||||
|
@Override
|
||||||
|
public void onThresholdCrossed(ThresholdSensor.ThresholdSensorEvent event) {
|
||||||
|
mProximitySensor.pause();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
mProximitySensor.register(listener);
|
||||||
|
mProximitySensor.register(cancelingListener);
|
||||||
|
assertNull(listener.mLastEvent);
|
||||||
|
assertEquals(0, listener.mCallCount);
|
||||||
|
|
||||||
|
mThresholdSensorPrimary.triggerEvent(true, 0);
|
||||||
|
assertNull(listener.mLastEvent);
|
||||||
|
assertEquals(0, listener.mCallCount);
|
||||||
|
mThresholdSensorSecondary.triggerEvent(true, 0);
|
||||||
|
assertTrue(listener.mLastEvent.getBelow());
|
||||||
|
assertEquals(1, listener.mCallCount);
|
||||||
|
|
||||||
|
// The proximity sensor should now be canceled. Advancing the clock should do nothing.
|
||||||
|
assertEquals(0, mFakeExecutor.numPending());
|
||||||
|
mThresholdSensorSecondary.triggerEvent(false, 1);
|
||||||
|
assertTrue(listener.mLastEvent.getBelow());
|
||||||
|
assertEquals(1, listener.mCallCount);
|
||||||
|
|
||||||
|
mProximitySensor.unregister(listener);
|
||||||
|
}
|
||||||
|
|
||||||
private static class TestableListener implements ThresholdSensor.Listener {
|
private static class TestableListener implements ThresholdSensor.Listener {
|
||||||
ThresholdSensor.ThresholdSensorEvent mLastEvent;
|
ThresholdSensor.ThresholdSensorEvent mLastEvent;
|
||||||
int mCallCount = 0;
|
int mCallCount = 0;
|
||||||
|
|||||||
Reference in New Issue
Block a user