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>
This commit is contained in:
Grace Cheng
2022-07-20 17:42:47 +00:00
committed by Automerger Merge Worker
2 changed files with 30 additions and 4 deletions

View File

@@ -609,7 +609,7 @@ public class UdfpsController implements DozeReceiver {
@NonNull SystemUIDialogManager dialogManager, @NonNull SystemUIDialogManager dialogManager,
@NonNull LatencyTracker latencyTracker, @NonNull LatencyTracker latencyTracker,
@NonNull ActivityLaunchAnimator activityLaunchAnimator, @NonNull ActivityLaunchAnimator activityLaunchAnimator,
@NonNull Optional<AlternateUdfpsTouchProvider> aternateTouchProvider, @NonNull Optional<AlternateUdfpsTouchProvider> alternateTouchProvider,
@BiometricsBackground Executor biometricsExecutor) { @BiometricsBackground Executor biometricsExecutor) {
mContext = context; mContext = context;
mExecution = execution; mExecution = execution;
@@ -639,7 +639,7 @@ public class UdfpsController implements DozeReceiver {
mUnlockedScreenOffAnimationController = unlockedScreenOffAnimationController; mUnlockedScreenOffAnimationController = unlockedScreenOffAnimationController;
mLatencyTracker = latencyTracker; mLatencyTracker = latencyTracker;
mActivityLaunchAnimator = activityLaunchAnimator; mActivityLaunchAnimator = activityLaunchAnimator;
mAlternateTouchProvider = aternateTouchProvider.orElse(null); mAlternateTouchProvider = alternateTouchProvider.orElse(null);
mBiometricExecutor = biometricsExecutor; mBiometricExecutor = biometricsExecutor;
mOrientationListener = new BiometricDisplayListener( mOrientationListener = new BiometricDisplayListener(

View File

@@ -28,8 +28,10 @@ import android.hardware.biometrics.BiometricsProtoEnums;
import android.hardware.biometrics.common.OperationContext; import android.hardware.biometrics.common.OperationContext;
import android.hardware.face.FaceManager; import android.hardware.face.FaceManager;
import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.FingerprintManager;
import android.util.Log;
import android.util.Slog; import android.util.Slog;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.FrameworkStatsLog; import com.android.internal.util.FrameworkStatsLog;
import com.android.server.biometrics.Utils; import com.android.server.biometrics.Utils;
@@ -41,6 +43,10 @@ public class BiometricLogger {
public static final String TAG = "BiometricLogger"; public static final String TAG = "BiometricLogger";
public static final boolean DEBUG = false; 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 mStatsModality;
private final int mStatsAction; private final int mStatsAction;
@@ -345,13 +351,33 @@ public class BiometricLogger {
if (!mLightSensorEnabled) { if (!mLightSensorEnabled) {
mLightSensorEnabled = true; mLightSensorEnabled = true;
mLastAmbientLux = 0; mLastAmbientLux = 0;
mSensorManager.registerListener(mLightSensorListener, lightSensor, int localAlsCounter;
SensorManager.SENSOR_DELAY_NORMAL); 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 { } else {
mLightSensorEnabled = false; mLightSensorEnabled = false;
mLastAmbientLux = 0; mLastAmbientLux = 0;
mSensorManager.unregisterListener(mLightSensorListener); 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()));
}
} }
} }
} }