Merge "Ensure that ProxCheck doesn't run a callback twice." into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
7a3fd41443
@@ -347,6 +347,7 @@ public class ProximitySensor implements ThresholdSensor {
|
||||
public void check(long timeoutMs, Consumer<Boolean> callback) {
|
||||
if (!mSensor.isLoaded()) {
|
||||
callback.accept(null);
|
||||
return;
|
||||
}
|
||||
mCallbacks.add(callback);
|
||||
if (!mRegistered.getAndSet(true)) {
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
package com.android.systemui.util.sensors;
|
||||
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertFalse;
|
||||
import static org.junit.Assert.assertNull;
|
||||
@@ -85,6 +87,29 @@ public class ProximityCheckTest extends SysuiTestCase {
|
||||
assertNull(mTestableCallback.mLastResult);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testNotLoaded() {
|
||||
mFakeProximitySensor.setSensorAvailable(false);
|
||||
|
||||
assertThat(mTestableCallback.mLastResult).isNull();
|
||||
assertThat(mTestableCallback.mNumCalls).isEqualTo(0);
|
||||
|
||||
mProximityCheck.check(100, mTestableCallback);
|
||||
|
||||
assertThat(mTestableCallback.mLastResult).isNull();
|
||||
assertThat(mTestableCallback.mNumCalls).isEqualTo(1);
|
||||
|
||||
mFakeProximitySensor.setSensorAvailable(true);
|
||||
|
||||
mProximityCheck.check(100, mTestableCallback);
|
||||
|
||||
mFakeProximitySensor.setLastEvent(new ProximitySensor.ThresholdSensorEvent(true, 0));
|
||||
mFakeProximitySensor.alertListeners();
|
||||
|
||||
assertThat(mTestableCallback.mLastResult).isNotNull();
|
||||
assertThat(mTestableCallback.mNumCalls).isEqualTo(2);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testProxDoesntCancelOthers() {
|
||||
assertFalse(mFakeProximitySensor.isRegistered());
|
||||
|
||||
Reference in New Issue
Block a user