From aae04715d1c49caa458da55ff497d0bf91d2e096 Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Fri, 5 Feb 2021 12:52:05 -0800 Subject: [PATCH] Add fingerprint enroll reason 1) Existing metrics logging-ness can be derived from it 2) EnrollReason is clearer and can be used by other parts of the system, such as SysUI 3) Do not show progressbar in SysUI if it's "find sensor" Bug: 179447737 Test: Builds Change-Id: I84f82b5c81a668e11c1a380e6fa4e3080db53dc9 --- .../fingerprint/FingerprintManager.java | 23 +++++++++++++++++-- .../fingerprint/IFingerprintService.aidl | 2 +- .../fingerprint/IUdfpsOverlayController.aidl | 9 ++++---- .../systemui/biometrics/UdfpsController.java | 15 +++++++----- .../biometrics/UdfpsEnrollHelper.java | 12 ++++++++++ .../systemui/biometrics/UdfpsView.java | 17 ++++++-------- .../fingerprint/FingerprintService.java | 4 ++-- .../sensors/fingerprint/ServiceProvider.java | 2 +- .../sensors/fingerprint/UdfpsHelper.java | 11 +++++++++ .../aidl/BiometricTestSessionImpl.java | 3 ++- .../aidl/FingerprintEnrollClient.java | 14 ++++++++--- .../fingerprint/aidl/FingerprintProvider.java | 5 ++-- .../hidl/BiometricTestSessionImpl.java | 3 ++- .../fingerprint/hidl/Fingerprint21.java | 5 ++-- .../hidl/FingerprintEnrollClient.java | 13 ++++++++--- 15 files changed, 100 insertions(+), 38 deletions(-) diff --git a/core/java/android/hardware/fingerprint/FingerprintManager.java b/core/java/android/hardware/fingerprint/FingerprintManager.java index 66b9600941ae2..188a2a47fca05 100644 --- a/core/java/android/hardware/fingerprint/FingerprintManager.java +++ b/core/java/android/hardware/fingerprint/FingerprintManager.java @@ -24,6 +24,7 @@ import static android.Manifest.permission.USE_BIOMETRIC; import static android.Manifest.permission.USE_BIOMETRIC_INTERNAL; import static android.Manifest.permission.USE_FINGERPRINT; +import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresFeature; @@ -55,6 +56,8 @@ import android.security.identity.IdentityCredential; import android.util.Slog; import android.view.Surface; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; import java.security.Signature; import java.util.ArrayList; import java.util.List; @@ -89,6 +92,22 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing private static final int MSG_UDFPS_POINTER_DOWN = 108; private static final int MSG_UDFPS_POINTER_UP = 109; + /** + * @hide + */ + public static final int ENROLL_FIND_SENSOR = 1; + /** + * @hide + */ + public static final int ENROLL_ENROLL = 2; + + /** + * @hide + */ + @IntDef({ENROLL_FIND_SENSOR, ENROLL_ENROLL}) + @Retention(RetentionPolicy.SOURCE) + public @interface EnrollReason {} + /** * Request authentication with any single sensor. * @hide @@ -580,7 +599,7 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing */ @RequiresPermission(MANAGE_FINGERPRINT) public void enroll(byte [] hardwareAuthToken, CancellationSignal cancel, int userId, - EnrollmentCallback callback, boolean shouldLogMetrics) { + EnrollmentCallback callback, @EnrollReason int enrollReason) { if (userId == UserHandle.USER_CURRENT) { userId = getCurrentUserId(); } @@ -601,7 +620,7 @@ public class FingerprintManager implements BiometricAuthenticator, BiometricFing try { mEnrollmentCallback = callback; mService.enroll(mToken, hardwareAuthToken, userId, mServiceReceiver, - mContext.getOpPackageName(), shouldLogMetrics); + mContext.getOpPackageName(), enrollReason); } catch (RemoteException e) { Slog.w(TAG, "Remote exception in enroll: ", e); // Though this may not be a hardware issue, it will cause apps to give up or try diff --git a/core/java/android/hardware/fingerprint/IFingerprintService.aidl b/core/java/android/hardware/fingerprint/IFingerprintService.aidl index 3657a83039ad4..8888247e2823f 100644 --- a/core/java/android/hardware/fingerprint/IFingerprintService.aidl +++ b/core/java/android/hardware/fingerprint/IFingerprintService.aidl @@ -78,7 +78,7 @@ interface IFingerprintService { // Start fingerprint enrollment void enroll(IBinder token, in byte [] hardwareAuthToken, int userId, IFingerprintServiceReceiver receiver, - String opPackageName, boolean shouldLogMetrics); + String opPackageName, int enrollReason); // Cancel enrollment in progress void cancelEnrollment(IBinder token); diff --git a/core/java/android/hardware/fingerprint/IUdfpsOverlayController.aidl b/core/java/android/hardware/fingerprint/IUdfpsOverlayController.aidl index c093489d44946..81c7d894ee094 100644 --- a/core/java/android/hardware/fingerprint/IUdfpsOverlayController.aidl +++ b/core/java/android/hardware/fingerprint/IUdfpsOverlayController.aidl @@ -21,10 +21,11 @@ package android.hardware.fingerprint; */ oneway interface IUdfpsOverlayController { const int REASON_UNKNOWN = 0; - const int REASON_ENROLL = 1; - const int REASON_AUTH_BP = 2; // BiometricPrompt - const int REASON_AUTH_FPM_KEYGUARD = 3; // FingerprintManager usage from Keyguard - const int REASON_AUTH_FPM_OTHER = 4; // Other FingerprintManager usage + const int REASON_ENROLL_FIND_SENSOR = 1; + const int REASON_ENROLL_ENROLLING = 2; + const int REASON_AUTH_BP = 3; // BiometricPrompt + const int REASON_AUTH_FPM_KEYGUARD = 4; // FingerprintManager usage from Keyguard + const int REASON_AUTH_FPM_OTHER = 5; // Other FingerprintManager usage // Shows the overlay. void showUdfpsOverlay(int sensorId, int reason); diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java index edf046864a7cf..e7b08e72877da 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsController.java @@ -96,8 +96,11 @@ public class UdfpsController implements DozeReceiver, HbmCallback { public class UdfpsOverlayController extends IUdfpsOverlayController.Stub { @Override public void showUdfpsOverlay(int sensorId, int reason) { - if (reason == IUdfpsOverlayController.REASON_ENROLL) { - mEnrollHelper = new UdfpsEnrollHelper(); + if (reason == IUdfpsOverlayController.REASON_ENROLL_FIND_SENSOR + || reason == IUdfpsOverlayController.REASON_ENROLL_ENROLLING) { + mEnrollHelper = new UdfpsEnrollHelper(reason); + } else { + mEnrollHelper = null; } UdfpsController.this.showOverlay(reason); } @@ -300,8 +303,7 @@ public class UdfpsController implements DozeReceiver, HbmCallback { try { Log.v(TAG, "showUdfpsOverlay | adding window"); final UdfpsAnimation animation = getUdfpsAnimationForReason(reason); - mView.setUdfpsAnimation(animation); - mView.setEnrollHelper(mEnrollHelper); + mView.setExtras(animation, mEnrollHelper); mWindowManager.addView(mView, computeLayoutParams(animation)); mView.setOnTouchListener(mOnTouchListener); mIsOverlayShowing = true; @@ -318,7 +320,8 @@ public class UdfpsController implements DozeReceiver, HbmCallback { private UdfpsAnimation getUdfpsAnimationForReason(int reason) { Log.d(TAG, "getUdfpsAnimationForReason: " + reason); switch (reason) { - case IUdfpsOverlayController.REASON_ENROLL: + case IUdfpsOverlayController.REASON_ENROLL_FIND_SENSOR: + case IUdfpsOverlayController.REASON_ENROLL_ENROLLING: return new UdfpsAnimationEnroll(mContext); case IUdfpsOverlayController.REASON_AUTH_FPM_KEYGUARD: return new UdfpsAnimationKeyguard(mView, mContext, mStatusBarStateController); @@ -334,7 +337,7 @@ public class UdfpsController implements DozeReceiver, HbmCallback { mFgExecutor.execute(() -> { if (mIsOverlayShowing) { Log.v(TAG, "hideUdfpsOverlay | removing window"); - mView.setUdfpsAnimation(null); + mView.setExtras(null, null); mView.setOnTouchListener(null); // Reset the controller back to its starting state. onFingerUp(); diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollHelper.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollHelper.java index ac6a2121eaaea..2442633a4a697 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollHelper.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsEnrollHelper.java @@ -16,6 +16,8 @@ package com.android.systemui.biometrics; +import android.hardware.fingerprint.IUdfpsOverlayController; + import androidx.annotation.NonNull; /** @@ -24,10 +26,20 @@ import androidx.annotation.NonNull; public class UdfpsEnrollHelper { private static final String TAG = "UdfpsEnrollHelper"; + // IUdfpsOverlayController reason + private final int mEnrollReason; private int mTotalSteps = -1; private int mCurrentProgress = 0; + public UdfpsEnrollHelper(int reason) { + mEnrollReason = reason; + } + + boolean shouldShowProgressBar() { + return mEnrollReason == IUdfpsOverlayController.REASON_ENROLL_ENROLLING; + } + void onEnrollmentProgress(int remaining, @NonNull UdfpsProgressBar progressBar) { if (mTotalSteps == -1) { mTotalSteps = remaining; diff --git a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.java b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.java index b21e1b5ebb15f..00cb28b8b8fbb 100644 --- a/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.java +++ b/packages/SystemUI/src/com/android/systemui/biometrics/UdfpsView.java @@ -111,22 +111,19 @@ public class UdfpsView extends FrameLayout implements DozeReceiver, UdfpsIllumin mSensorProps = properties; } - void setUdfpsAnimation(@Nullable UdfpsAnimation animation) { + void setExtras(@Nullable UdfpsAnimation animation, @Nullable UdfpsEnrollHelper enrollHelper) { mAnimationView.setAnimation(animation); - if (animation instanceof UdfpsAnimationEnroll) { - mProgressBar.setVisibility(View.VISIBLE); + mEnrollHelper = enrollHelper; + + if (enrollHelper != null) { + mEnrollHelper.updateProgress(mProgressBar); + mProgressBar.setVisibility(enrollHelper.shouldShowProgressBar() + ? View.VISIBLE : View.GONE); } else { mProgressBar.setVisibility(View.GONE); } } - void setEnrollHelper(@Nullable UdfpsEnrollHelper enrollHelper) { - mEnrollHelper = enrollHelper; - if (mEnrollHelper != null) { - mEnrollHelper.updateProgress(mProgressBar); - } - } - @Override public void setHbmCallback(@Nullable HbmCallback callback) { mHbmSurfaceView.setHbmCallback(callback); diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java index 686f9f525426e..b0e42cd137eb5 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/FingerprintService.java @@ -197,7 +197,7 @@ public class FingerprintService extends SystemService implements BiometricServic @Override // Binder call public void enroll(final IBinder token, final byte[] hardwareAuthToken, final int userId, final IFingerprintServiceReceiver receiver, final String opPackageName, - boolean shouldLogMetrics) { + @FingerprintManager.EnrollReason int enrollReason) { Utils.checkPermission(getContext(), MANAGE_FINGERPRINT); final Pair provider = getSingleProvider(); @@ -207,7 +207,7 @@ public class FingerprintService extends SystemService implements BiometricServic } provider.second.scheduleEnroll(provider.first, token, hardwareAuthToken, userId, - receiver, opPackageName, shouldLogMetrics); + receiver, opPackageName, enrollReason); } @Override // Binder call diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/ServiceProvider.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/ServiceProvider.java index 303c080c044cd..f672ae56e0206 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/ServiceProvider.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/ServiceProvider.java @@ -78,7 +78,7 @@ public interface ServiceProvider { void scheduleEnroll(int sensorId, @NonNull IBinder token, byte[] hardwareAuthToken, int userId, @NonNull IFingerprintServiceReceiver receiver, @NonNull String opPackageName, - boolean shouldLogMetrics); + @FingerprintManager.EnrollReason int enrollReason); void cancelEnrollment(int sensorId, @NonNull IBinder token); diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/UdfpsHelper.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/UdfpsHelper.java index d092e860e2081..37f8e8c2c1eee 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/UdfpsHelper.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/UdfpsHelper.java @@ -65,6 +65,17 @@ public class UdfpsHelper { } } + public static int getReasonFromEnrollReason(@FingerprintManager.EnrollReason int reason) { + switch (reason) { + case FingerprintManager.ENROLL_FIND_SENSOR: + return IUdfpsOverlayController.REASON_ENROLL_FIND_SENSOR; + case FingerprintManager.ENROLL_ENROLL: + return IUdfpsOverlayController.REASON_ENROLL_ENROLLING; + default: + return IUdfpsOverlayController.REASON_UNKNOWN; + } + } + public static void showUdfpsOverlay(int sensorId, int reason, @Nullable IUdfpsOverlayController udfpsOverlayController) { if (udfpsOverlayController == null) { diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/BiometricTestSessionImpl.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/BiometricTestSessionImpl.java index c2a30be6e2cb3..ea9c709ec79f5 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/BiometricTestSessionImpl.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/BiometricTestSessionImpl.java @@ -22,6 +22,7 @@ import android.annotation.NonNull; import android.content.Context; import android.hardware.biometrics.ITestSession; import android.hardware.fingerprint.Fingerprint; +import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.IFingerprintServiceReceiver; import android.os.Binder; import android.util.Slog; @@ -131,7 +132,7 @@ class BiometricTestSessionImpl extends ITestSession.Stub { Utils.checkPermission(mContext, TEST_BIOMETRIC); mProvider.scheduleEnroll(mSensorId, new Binder(), new byte[69], userId, mReceiver, - mContext.getOpPackageName(), true /* shouldLogMetrics */); + mContext.getOpPackageName(), FingerprintManager.ENROLL_ENROLL); } @Override diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintEnrollClient.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintEnrollClient.java index 08cc464b4766a..ae64c77f13650 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintEnrollClient.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintEnrollClient.java @@ -25,6 +25,7 @@ import android.hardware.biometrics.BiometricsProtoEnums; import android.hardware.biometrics.common.ICancellationSignal; import android.hardware.biometrics.fingerprint.ISession; import android.hardware.fingerprint.Fingerprint; +import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.IUdfpsOverlayController; import android.os.IBinder; import android.os.RemoteException; @@ -43,6 +44,7 @@ class FingerprintEnrollClient extends EnrollClient implements Udfps { private static final String TAG = "FingerprintEnrollClient"; @Nullable private final IUdfpsOverlayController mUdfpsOverlayController; + private final @FingerprintManager.EnrollReason int mEnrollReason; @Nullable private ICancellationSignal mCancellationSignal; private final int mMaxTemplatesPerUser; @@ -52,13 +54,17 @@ class FingerprintEnrollClient extends EnrollClient implements Udfps { @NonNull byte[] hardwareAuthToken, @NonNull String owner, @NonNull BiometricUtils utils, int sensorId, @Nullable IUdfpsOverlayController udfpsOvelayController, int maxTemplatesPerUser, - boolean shouldLogMetrics) { + @FingerprintManager.EnrollReason int enrollReason) { super(context, lazyDaemon, token, listener, userId, hardwareAuthToken, owner, utils, 0 /* timeoutSec */, BiometricsProtoEnums.MODALITY_FINGERPRINT, sensorId, true /* shouldVibrate */); mUdfpsOverlayController = udfpsOvelayController; mMaxTemplatesPerUser = maxTemplatesPerUser; - setShouldLog(shouldLogMetrics); + + mEnrollReason = enrollReason; + if (enrollReason == FingerprintManager.ENROLL_FIND_SENSOR) { + setShouldLog(false); + } } @Override @@ -72,6 +78,7 @@ class FingerprintEnrollClient extends EnrollClient implements Udfps { } } + @Override public void onAcquired(int acquiredInfo, int vendorCode) { super.onAcquired(acquiredInfo, vendorCode); @@ -112,7 +119,8 @@ class FingerprintEnrollClient extends EnrollClient implements Udfps { @Override protected void startHalOperation() { - UdfpsHelper.showUdfpsOverlay(getSensorId(), IUdfpsOverlayController.REASON_ENROLL, + UdfpsHelper.showUdfpsOverlay(getSensorId(), + UdfpsHelper.getReasonFromEnrollReason(mEnrollReason), mUdfpsOverlayController); try { mCancellationSignal = getFreshDaemon().enroll(mSequentialId, diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java index fec2c4670439a..ced46e140c0a8 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/aidl/FingerprintProvider.java @@ -28,6 +28,7 @@ import android.hardware.biometrics.ITestSession; import android.hardware.biometrics.fingerprint.IFingerprint; import android.hardware.biometrics.fingerprint.SensorProps; import android.hardware.fingerprint.Fingerprint; +import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.FingerprintSensorPropertiesInternal; import android.hardware.fingerprint.IFingerprintServiceReceiver; import android.hardware.fingerprint.IUdfpsOverlayController; @@ -366,7 +367,7 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi @Override public void scheduleEnroll(int sensorId, @NonNull IBinder token, byte[] hardwareAuthToken, int userId, @NonNull IFingerprintServiceReceiver receiver, - @NonNull String opPackageName, boolean shouldLogMetrics) { + @NonNull String opPackageName, @FingerprintManager.EnrollReason int enrollReason) { mHandler.post(() -> { final IFingerprint daemon = getHalInstance(); if (daemon == null) { @@ -388,7 +389,7 @@ public class FingerprintProvider implements IBinder.DeathRecipient, ServiceProvi mSensors.get(sensorId).getLazySession(), token, new ClientMonitorCallbackConverter(receiver), userId, hardwareAuthToken, opPackageName, FingerprintUtils.getInstance(sensorId), sensorId, - mUdfpsOverlayController, maxTemplatesPerUser, shouldLogMetrics); + mUdfpsOverlayController, maxTemplatesPerUser, enrollReason); scheduleForSensor(sensorId, client, new BaseClientMonitor.Callback() { @Override public void onClientFinished(@NonNull BaseClientMonitor clientMonitor, diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/BiometricTestSessionImpl.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/BiometricTestSessionImpl.java index 6893e72486bc9..312ee0a267ac3 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/BiometricTestSessionImpl.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/BiometricTestSessionImpl.java @@ -22,6 +22,7 @@ import android.annotation.NonNull; import android.content.Context; import android.hardware.biometrics.ITestSession; import android.hardware.fingerprint.Fingerprint; +import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.IFingerprintServiceReceiver; import android.os.Binder; import android.util.Slog; @@ -132,7 +133,7 @@ public class BiometricTestSessionImpl extends ITestSession.Stub { Utils.checkPermission(mContext, TEST_BIOMETRIC); mFingerprint21.scheduleEnroll(mSensorId, new Binder(), new byte[69], userId, mReceiver, - mContext.getOpPackageName(), true/* shouldLogMetrics */); + mContext.getOpPackageName(), FingerprintManager.ENROLL_ENROLL); } @Override diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java index f8e7c178ea96b..7a74c6a39aa17 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/Fingerprint21.java @@ -33,6 +33,7 @@ import android.hardware.biometrics.ITestSession; import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint; import android.hardware.biometrics.fingerprint.V2_2.IBiometricsFingerprintClientCallback; import android.hardware.fingerprint.Fingerprint; +import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.FingerprintSensorProperties; import android.hardware.fingerprint.FingerprintSensorPropertiesInternal; import android.hardware.fingerprint.IFingerprintServiceReceiver; @@ -547,7 +548,7 @@ public class Fingerprint21 implements IHwBinder.DeathRecipient, ServiceProvider public void scheduleEnroll(int sensorId, @NonNull IBinder token, @NonNull byte[] hardwareAuthToken, int userId, @NonNull IFingerprintServiceReceiver receiver, @NonNull String opPackageName, - boolean shouldLogMetrics) { + @FingerprintManager.EnrollReason int enrollReason) { mHandler.post(() -> { scheduleUpdateActiveUserWithoutHandler(userId); @@ -555,7 +556,7 @@ public class Fingerprint21 implements IHwBinder.DeathRecipient, ServiceProvider mLazyDaemon, token, new ClientMonitorCallbackConverter(receiver), userId, hardwareAuthToken, opPackageName, FingerprintUtils.getLegacyInstance(mSensorId), ENROLL_TIMEOUT_SEC, mSensorProperties.sensorId, mUdfpsOverlayController, - shouldLogMetrics); + enrollReason); mScheduler.scheduleClientMonitor(client, new BaseClientMonitor.Callback() { @Override public void onClientFinished(@NonNull BaseClientMonitor clientMonitor, diff --git a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/FingerprintEnrollClient.java b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/FingerprintEnrollClient.java index d927aa717fbc6..33db64c3259b1 100644 --- a/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/FingerprintEnrollClient.java +++ b/services/core/java/com/android/server/biometrics/sensors/fingerprint/hidl/FingerprintEnrollClient.java @@ -24,6 +24,7 @@ import android.hardware.biometrics.BiometricFingerprintConstants; import android.hardware.biometrics.BiometricsProtoEnums; import android.hardware.biometrics.fingerprint.V2_1.IBiometricsFingerprint; import android.hardware.fingerprint.Fingerprint; +import android.hardware.fingerprint.FingerprintManager; import android.hardware.fingerprint.IUdfpsOverlayController; import android.os.IBinder; import android.os.RemoteException; @@ -46,6 +47,7 @@ public class FingerprintEnrollClient extends EnrollClient lazyDaemon, @NonNull IBinder token, @@ -53,12 +55,16 @@ public class FingerprintEnrollClient extends EnrollClient utils, int timeoutSec, int sensorId, @Nullable IUdfpsOverlayController udfpsOverlayController, - boolean shouldLogMetrics) { + @FingerprintManager.EnrollReason int enrollReason) { super(context, lazyDaemon, token, listener, userId, hardwareAuthToken, owner, utils, timeoutSec, BiometricsProtoEnums.MODALITY_FINGERPRINT, sensorId, true /* shouldVibrate */); mUdfpsOverlayController = udfpsOverlayController; - setShouldLog(shouldLogMetrics); + + mEnrollReason = enrollReason; + if (enrollReason == FingerprintManager.ENROLL_FIND_SENSOR) { + setShouldLog(false); + } } @Override @@ -76,7 +82,8 @@ public class FingerprintEnrollClient extends EnrollClient