diff options
author | Alex Medina <medina@google.com> | 2024-03-06 20:00:21 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-03-06 20:00:21 +0000 |
commit | 2ff3babfb3c45cd6e98a1f5447adcdff9da94b1b (patch) | |
tree | e83270558514569c7f1f46833fa7549d6b5e8128 | |
parent | a2e44448c17500b7a0b7265ebde218f3fae6d5ed (diff) | |
parent | 5eda411dbfa8861575db9aec1c7c3814a9f7a812 (diff) | |
download | base-2ff3babfb3c45cd6e98a1f5447adcdff9da94b1b.tar.gz |
Merge "Cherry pick the cl to aosp to unblock partner. Check light sensor is null for biometric logging" into main
-rw-r--r-- | services/core/java/com/android/server/biometrics/log/ALSProbe.java | 9 | ||||
-rw-r--r-- | services/tests/servicestests/src/com/android/server/biometrics/log/ALSProbeTest.java | 15 |
2 files changed, 21 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/biometrics/log/ALSProbe.java b/services/core/java/com/android/server/biometrics/log/ALSProbe.java index d584c99cea72..d4e46a930124 100644 --- a/services/core/java/com/android/server/biometrics/log/ALSProbe.java +++ b/services/core/java/com/android/server/biometrics/log/ALSProbe.java @@ -179,15 +179,18 @@ final class ALSProbe implements Probe { nextConsumer.consume(current); } else if (mNextConsumer != null) { mNextConsumer.add(nextConsumer); - } else { + } else if (mLightSensor != null) { mDestroyed = false; mNextConsumer = nextConsumer; enableLightSensorLoggingLocked(); + } else { + Slog.w(TAG, "No light sensor - use current to consume"); + nextConsumer.consume(current); } } private void enableLightSensorLoggingLocked() { - if (!mEnabled) { + if (!mEnabled && mLightSensor != null) { mEnabled = true; mLastAmbientLux = -1; mSensorManager.registerListener(mLightSensorListener, mLightSensor, @@ -201,7 +204,7 @@ final class ALSProbe implements Probe { private void disableLightSensorLoggingLocked(boolean destroying) { resetTimerLocked(false /* start */); - if (mEnabled) { + if (mEnabled && mLightSensor != null) { mEnabled = false; if (!destroying) { mLastAmbientLux = -1; diff --git a/services/tests/servicestests/src/com/android/server/biometrics/log/ALSProbeTest.java b/services/tests/servicestests/src/com/android/server/biometrics/log/ALSProbeTest.java index bb0063427339..fa1fd90e10c9 100644 --- a/services/tests/servicestests/src/com/android/server/biometrics/log/ALSProbeTest.java +++ b/services/tests/servicestests/src/com/android/server/biometrics/log/ALSProbeTest.java @@ -344,6 +344,21 @@ public class ALSProbeTest { verifyNoMoreInteractions(mSensorManager); } + @Test + public void testAwaitLuxWhenNoLightSensor() { + when(mSensorManager.getDefaultSensor(Sensor.TYPE_LIGHT)).thenReturn(null); + mProbe = new ALSProbe(mSensorManager, new Handler(mLooper.getLooper()), TIMEOUT_MS - 1); + + AtomicInteger lux = new AtomicInteger(-5); + mProbe.awaitNextLux((v) -> lux.set(Math.round(v)), null /* handler */); + + // Verify that no light sensor will be registered. + verify(mSensorManager, times(0)).registerListener( + mSensorEventListenerCaptor.capture(), any(), anyInt()); + + assertThat(lux.get()).isEqualTo(-1); + } + private void moveTimeBy(long millis) { mLooper.moveTimeForward(millis); mLooper.processAllMessages(); |