From 25ce76f6672147e8daffee08608b3fd6f529f69b Mon Sep 17 00:00:00 2001 From: Wu Ahan Date: Thu, 23 May 2024 07:46:16 +0000 Subject: [PATCH] Extend SfpsEnrollmentFeature for text updating when progress changes Bug: 341693248 Test: atest SfpsEnrollmentFeatureImplTest Change-Id: I63576f129f4453d4db088adfaa472df797823514 --- .../FingerprintEnrollEnrolling.java | 26 ++++++++++++------- .../fingerprint/MessageDisplayController.java | 5 ++++ .../feature/SfpsEnrollmentFeature.java | 21 +++++++++++++++ 3 files changed, 43 insertions(+), 9 deletions(-) diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java index 39b13133dd4..795f999a030 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java @@ -264,7 +264,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { mIsSetupWizard = WizardManagerHelper.isAnySetupWizard(getIntent()); if (mCanAssumeUdfps || mCanAssumeSfps) { - updateTitleAndDescription(); + updateTitleAndDescription(true); } else { setHeaderText(R.string.security_settings_fingerprint_enroll_repeat_title); } @@ -387,7 +387,7 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { protected void onStart() { super.onStart(); updateProgress(false /* animate */); - updateTitleAndDescription(); + updateTitleAndDescription(true); if (mRestoring) { startIconAnimation(); } @@ -491,12 +491,14 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { return new Intent(this, FingerprintEnrollFinish.class); } - private void updateTitleAndDescription() { + private void updateTitleAndDescription(boolean force) { if (mCanAssumeUdfps) { updateTitleAndDescriptionForUdfps(); return; } else if (mCanAssumeSfps) { - updateTitleAndDescriptionForSfps(); + if (force || mSfpsEnrollmentFeature.shouldUpdateTitleAndDescription()) { + updateTitleAndDescriptionForSfps(); + } return; } @@ -814,12 +816,15 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { public void onEnrollmentProgressChange(int steps, int remaining) { updateProgress(true /* animate */); final int percent = (int) (((float) (steps - remaining) / (float) steps) * 100); - if (mCanAssumeSfps && mIsAccessibilityEnabled) { - CharSequence announcement = getString( - R.string.security_settings_sfps_enroll_progress_a11y_message, percent); - announceEnrollmentProgress(announcement); + if (mCanAssumeSfps) { + mSfpsEnrollmentFeature.handleOnEnrollmentProgressChange(steps, remaining); + if (mIsAccessibilityEnabled) { + CharSequence announcement = getString( + R.string.security_settings_sfps_enroll_progress_a11y_message, percent); + announceEnrollmentProgress(announcement); + } } - updateTitleAndDescription(); + updateTitleAndDescription(false); animateFlash(); if (mCanAssumeUdfps) { if (mIsAccessibilityEnabled) { @@ -850,6 +855,9 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { if (mUdfpsEnrollHelper != null) { mUdfpsEnrollHelper.onAcquired(isAcquiredGood); } + if (mCanAssumeSfps) { + mSfpsEnrollmentFeature.handleOnAcquired(isAcquiredGood); + } } @Override diff --git a/src/com/android/settings/biometrics/fingerprint/MessageDisplayController.java b/src/com/android/settings/biometrics/fingerprint/MessageDisplayController.java index 4dc75b9d375..639bb3df497 100644 --- a/src/com/android/settings/biometrics/fingerprint/MessageDisplayController.java +++ b/src/com/android/settings/biometrics/fingerprint/MessageDisplayController.java @@ -177,6 +177,11 @@ public class MessageDisplayController extends FingerprintManager.EnrollmentCallb mEnrollmentCallback.onEnrollmentError(errMsgId, errString); } + @Override + public void onAcquired(boolean isAcquiredGood) { + mEnrollmentCallback.onAcquired(isAcquiredGood); + } + private Message getMessageToDisplay(long timeStamp) { ProgressMessage progressMessageToDisplay = getProgressMessageToDisplay(timeStamp); if (mMustDisplayProgress) { diff --git a/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeature.java b/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeature.java index f99d394dceb..bdf9530828b 100644 --- a/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeature.java +++ b/src/com/android/settings/biometrics/fingerprint/feature/SfpsEnrollmentFeature.java @@ -93,4 +93,25 @@ public interface SfpsEnrollmentFeature { * @param lottieView the view related to the lottie */ default void handleOnEnrollmentLottieComposition(LottieAnimationView lottieView) {} + + /** + * Indicates if the title and description should be updated. + * @return true to update the title and description; false otherwise. + */ + default boolean shouldUpdateTitleAndDescription() { + return true; + } + + /** + * Notifies an acquisition happens. + * @param isAcquiredGood isAcquiredGood + */ + default void handleOnAcquired(boolean isAcquiredGood) {} + + /** + * Notifies an enrollment progress changes event. + * @param steps steps + * @param remaining remaining + */ + default void handleOnEnrollmentProgressChange(int steps, int remaining) {} }