Loading packages/SystemUI/tests/src/com/android/systemui/util/sensors/ProximityCheckTest.java→packages/SystemUI/multivalentTests/src/com/android/systemui/util/sensors/ProximityCheckTest.java +20 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,26 @@ public class ProximityCheckTest extends SysuiTestCase { assertTrue(mTestableCallback.mLastResult); } @Test public void testRecursiveCheck() { mProximityCheck.check(100, event-> mProximityCheck.check(100, mTestableCallback)); assertThat(mTestableCallback.mNumCalls).isEqualTo(0); assertThat(mTestableCallback.mLastResult).isNull(); mFakeExecutor.advanceClockToNext(); mFakeExecutor.runAllReady(); assertThat(mTestableCallback.mNumCalls).isEqualTo(0); assertThat(mTestableCallback.mLastResult).isNull(); mFakeProximitySensor.setLastEvent(new ThresholdSensorEvent(true, 0)); mFakeProximitySensor.alertListeners(); assertThat(mTestableCallback.mNumCalls).isEqualTo(1); assertThat(mTestableCallback.mLastResult).isTrue(); } @Test public void testTimeout() { mProximityCheck.check(100, mTestableCallback); Loading packages/SystemUI/src/com/android/systemui/util/sensors/ProximityCheck.java +4 −2 Original line number Diff line number Diff line Loading @@ -86,13 +86,15 @@ public class ProximityCheck implements Runnable { } private void onProximityEvent(ThresholdSensorEvent proximityEvent) { // Move the callbacks to a local to avoid ConcurrentModificationException List<Consumer<Boolean>> oldCallbacks = mCallbacks; mCallbacks = new ArrayList<>(); // Unregister from the ProximitySensor to ensure a re-entrant check will re-register unregister(); // Notify the callbacks oldCallbacks.forEach( booleanConsumer -> booleanConsumer.accept( proximityEvent == null ? null : proximityEvent.getBelow())); unregister(); mRegistered.set(false); } } Loading
packages/SystemUI/tests/src/com/android/systemui/util/sensors/ProximityCheckTest.java→packages/SystemUI/multivalentTests/src/com/android/systemui/util/sensors/ProximityCheckTest.java +20 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,26 @@ public class ProximityCheckTest extends SysuiTestCase { assertTrue(mTestableCallback.mLastResult); } @Test public void testRecursiveCheck() { mProximityCheck.check(100, event-> mProximityCheck.check(100, mTestableCallback)); assertThat(mTestableCallback.mNumCalls).isEqualTo(0); assertThat(mTestableCallback.mLastResult).isNull(); mFakeExecutor.advanceClockToNext(); mFakeExecutor.runAllReady(); assertThat(mTestableCallback.mNumCalls).isEqualTo(0); assertThat(mTestableCallback.mLastResult).isNull(); mFakeProximitySensor.setLastEvent(new ThresholdSensorEvent(true, 0)); mFakeProximitySensor.alertListeners(); assertThat(mTestableCallback.mNumCalls).isEqualTo(1); assertThat(mTestableCallback.mLastResult).isTrue(); } @Test public void testTimeout() { mProximityCheck.check(100, mTestableCallback); Loading
packages/SystemUI/src/com/android/systemui/util/sensors/ProximityCheck.java +4 −2 Original line number Diff line number Diff line Loading @@ -86,13 +86,15 @@ public class ProximityCheck implements Runnable { } private void onProximityEvent(ThresholdSensorEvent proximityEvent) { // Move the callbacks to a local to avoid ConcurrentModificationException List<Consumer<Boolean>> oldCallbacks = mCallbacks; mCallbacks = new ArrayList<>(); // Unregister from the ProximitySensor to ensure a re-entrant check will re-register unregister(); // Notify the callbacks oldCallbacks.forEach( booleanConsumer -> booleanConsumer.accept( proximityEvent == null ? null : proximityEvent.getBelow())); unregister(); mRegistered.set(false); } }