diff options
| author | 2022-07-20 17:42:47 +0000 | |
|---|---|---|
| committer | 2022-07-20 17:42:47 +0000 | |
| commit | b54714f62ae2621d49de1fa5b3454b53f610c500 (patch) | |
| tree | e126258469e54756bdc2556afc662ca7acab0b6a | |
| parent | ce077ee1d694522ae7e0993a4dc1c5df6fd323d6 (diff) | |
| parent | 9a71b13dcc5fe5f83fa9a213ddaf034cd9f4da9e (diff) | |
Merge "Adding counter logging instances of multiple BiometricLogger ALS subscriptions" into tm-qpr-dev am: 9a71b13dcc
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/19241037
Change-Id: If20c85a8ade1e308d379725de36471089445d7f8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java | 4 | ||||
| -rw-r--r-- | services/core/java/com/android/server/biometrics/log/BiometricLogger.java | 30 |
2 files changed, 30 insertions, 4 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java index fb502e5b72cc..cf50f7f8524b 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<AlternateUdfpsTouchProvider> aternateTouchProvider, + @NonNull Optional<AlternateUdfpsTouchProvider> 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 ad24cf0591ca..262be08b60e2 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())); + } } } } |