diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java index fb502e5b72cc9..cf50f7f8524ba 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java @@ -609,7 +609,7 @@ public class UdfpsController implements DozeReceiver { @NonNull SystemUIDialogManager dialogManager, @NonNull LatencyTracker latencyTracker, @NonNull ActivityLaunchAnimator activityLaunchAnimator, - @NonNull Optional aternateTouchProvider, + @NonNull Optional alternateTouchProvider, @BiometricsBackground Executor biometricsExecutor) { mContext = context; mExecution = execution; @@ -639,7 +639,7 @@ public class UdfpsController implements DozeReceiver { mUnlockedScreenOffAnimationController = unlockedScreenOffAnimationController; mLatencyTracker = latencyTracker; mActivityLaunchAnimator = activityLaunchAnimator; - mAlternateTouchProvider = aternateTouchProvider.orElse(null); + mAlternateTouchProvider = alternateTouchProvider.orElse(null); mBiometricExecutor = biometricsExecutor; mOrientationListener = new BiometricDisplayListener( diff --git a/services/core/java/com/android/server/biometrics/log/BiometricLogger.java b/services/core/java/com/android/server/biometrics/log/BiometricLogger.java index ad24cf0591ca2..262be08b60e23 100644 --- a/services/core/java/com/android/server/biometrics/log/BiometricLogger.java +++ b/services/core/java/com/android/server/biometrics/log/BiometricLogger.java @@ -28,8 +28,10 @@ import android.hardware.biometrics.BiometricsProtoEnums; import android.hardware.biometrics.common.OperationContext; import android.hardware.face.FaceManager; import android.hardware.fingerprint.FingerprintManager; +import android.util.Log; import android.util.Slog; +import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.FrameworkStatsLog; import com.android.server.biometrics.Utils; @@ -41,6 +43,10 @@ public class BiometricLogger { public static final String TAG = "BiometricLogger"; public static final boolean DEBUG = false; + private static final Object sLock = new Object(); + + @GuardedBy("sLock") + private static int sAlsCounter; private final int mStatsModality; private final int mStatsAction; @@ -345,13 +351,33 @@ public class BiometricLogger { if (!mLightSensorEnabled) { mLightSensorEnabled = true; mLastAmbientLux = 0; - mSensorManager.registerListener(mLightSensorListener, lightSensor, - SensorManager.SENSOR_DELAY_NORMAL); + int localAlsCounter; + synchronized (sLock) { + localAlsCounter = sAlsCounter++; + } + + if (localAlsCounter == 0) { + mSensorManager.registerListener(mLightSensorListener, lightSensor, + SensorManager.SENSOR_DELAY_NORMAL); + } else { + Slog.e(TAG, "Ignoring request to subscribe to ALSProbe due to non-zero ALS" + + " counter: " + localAlsCounter); + Slog.e(TAG, Log.getStackTraceString(new Throwable())); + } } } else { mLightSensorEnabled = false; mLastAmbientLux = 0; mSensorManager.unregisterListener(mLightSensorListener); + int localAlsCounter; + synchronized (sLock) { + localAlsCounter = --sAlsCounter; + } + if (localAlsCounter != 0) { + Slog.e(TAG, "Non-zero ALS counter after unsubscribing from ALSProbe: " + + localAlsCounter); + Slog.e(TAG, Log.getStackTraceString(new Throwable())); + } } } }