diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java index 90b93461b9c..bbeaf2afb85 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java @@ -71,7 +71,6 @@ import com.android.settings.biometrics.BiometricsEnrollEnrolling; import com.android.settings.biometrics.BiometricsSplitScreenDialog; import com.android.settings.biometrics.fingerprint.feature.SfpsEnrollmentFeature; import com.android.settings.core.instrumentation.InstrumentedDialogFragment; -import com.android.settings.flags.Flags; import com.android.settings.overlay.FeatureFactory; import com.android.settingslib.display.DisplayDensityUtils; @@ -252,12 +251,6 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { setContentView(layout); setDescriptionText(R.string.security_settings_udfps_enroll_start_message); - - if (Flags.udfpsEnrollCalibration()) { - mCalibrator = FeatureFactory.getFeatureFactory().getFingerprintFeatureProvider() - .getUdfpsEnrollCalibrator(getApplicationContext(), savedInstanceState, - getIntent()); - } } else if (mCanAssumeSfps) { mSfpsEnrollmentFeature = FeatureFactory.getFeatureFactory() .getFingerprintFeatureProvider().getSfpsEnrollmentFeature(); @@ -342,6 +335,15 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { final Configuration config = getApplicationContext().getResources().getConfiguration(); maybeHideSfpsText(config); + + if (!mIsSetupWizard) { + mCalibrator = FeatureFactory.getFeatureFactory().getFingerprintFeatureProvider() + .getUdfpsEnrollCalibrator(getApplicationContext(), null, getIntent()); + if (mCalibrator != null) { + mCalibrator.onWaitingPage(getLifecycle(), + getSupportFragmentManager(), null); + } + } } private void setHelpAnimation() { @@ -371,11 +373,6 @@ public class FingerprintEnrollEnrolling extends BiometricsEnrollEnrolling { super.onSaveInstanceState(outState); outState.putBoolean(KEY_STATE_CANCELED, mIsCanceled); outState.putInt(KEY_STATE_PREVIOUS_ROTATION, mPreviousRotation); - if (Flags.udfpsEnrollCalibration()) { - if (mCalibrator != null) { - mCalibrator.onSaveInstanceState(outState); - } - } } private void restoreSavedState(Bundle savedInstanceState) { diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java index 6b7538ae220..aeb0dac97c4 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java @@ -167,7 +167,7 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements .getUdfpsEnrollCalibrator(getApplicationContext(), savedInstanceState, getIntent()); if (mCalibrator != null) { - mCalibrator.onFindSensorPage( + mCalibrator.onWaitingPage( getLifecycle(), getSupportFragmentManager(), this::enableUdfpsLottieAndNextButton @@ -296,7 +296,7 @@ public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements getIntent().getIntExtra(BiometricUtils.EXTRA_ENROLL_REASON, -1)); if (Flags.udfpsEnrollCalibration()) { if (mCalibrator != null) { - ret.putExtras(mCalibrator.getExtrasForNextIntent(true)); + ret.putExtras(mCalibrator.getExtrasForNextIntent()); } } return ret; diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java index f92cfbf6696..59e4035497c 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java @@ -384,7 +384,7 @@ public class FingerprintEnrollIntroduction extends BiometricEnrollIntroduction { } if (Flags.udfpsEnrollCalibration()) { if (mCalibrator != null) { - intent.putExtras(mCalibrator.getExtrasForNextIntent(false)); + intent.putExtras(mCalibrator.getExtrasForNextIntent()); } } intent.putExtra(BiometricUtils.EXTRA_ENROLL_REASON, diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java index 2aacbe4bd88..9dac46dd1d1 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java @@ -88,6 +88,7 @@ import com.android.settingslib.transition.SettingsTransitionHelper; import com.android.settingslib.widget.FooterPreference; import com.android.settingslib.widget.TwoTargetPreference; +import com.google.android.setupcompat.util.WizardManagerHelper; import com.google.android.setupdesign.util.DeviceHelper; import java.util.ArrayList; @@ -111,6 +112,9 @@ public class FingerprintSettings extends SubSettings { private static final int RESULT_SKIP = BiometricEnrollBase.RESULT_SKIP; private static final int RESULT_TIMEOUT = BiometricEnrollBase.RESULT_TIMEOUT; + @Nullable + private UdfpsEnrollCalibrator mCalibrator; + @Override public Intent getIntent() { Intent modIntent = new Intent(super.getIntent()); @@ -131,6 +135,13 @@ public class FingerprintSettings extends SubSettings { setTitle(msg); } + @Override + public void onResume() { + super.onResume(); + mCalibrator = FeatureFactory.getFeatureFactory().getFingerprintFeatureProvider() + .getUdfpsEnrollCalibrator(getApplicationContext(), null, null); + } + /** * @param context * @return true if the Fingerprint hardware is detected. @@ -800,6 +811,11 @@ public class FingerprintSettings extends SubSettings { } intent.putExtra(Intent.EXTRA_USER_ID, mUserId); intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, mToken); + if (((FingerprintSettings) getActivity()).mCalibrator != null) { + intent.putExtras( + (((FingerprintSettings) getActivity()).mCalibrator) + .getExtrasForNextIntent()); + } startActivityForResult(intent, ADD_FINGERPRINT_REQUEST); } else if (pref instanceof FingerprintPreference) { FingerprintPreference fpref = (FingerprintPreference) pref; diff --git a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensor.java b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensor.java index 6590530cecf..3037c2a61eb 100644 --- a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensor.java +++ b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollFindSensor.java @@ -51,7 +51,7 @@ public class SetupFingerprintEnrollFindSensor extends FingerprintEnrollFindSenso SetupWizardUtils.copySetupExtras(getIntent(), intent); if (Flags.udfpsEnrollCalibration()) { if (mCalibrator != null) { - intent.putExtras(mCalibrator.getExtrasForNextIntent(true)); + intent.putExtras(mCalibrator.getExtrasForNextIntent()); } } return intent; diff --git a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java index 0ee9ad380b5..c263b2e4e2d 100644 --- a/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java +++ b/src/com/android/settings/biometrics/fingerprint/SetupFingerprintEnrollIntroduction.java @@ -49,7 +49,7 @@ public class SetupFingerprintEnrollIntroduction extends FingerprintEnrollIntrodu SetupWizardUtils.copySetupExtras(getIntent(), intent); if (Flags.udfpsEnrollCalibration()) { if (mCalibrator != null) { - intent.putExtras(mCalibrator.getExtrasForNextIntent(false)); + intent.putExtras(mCalibrator.getExtrasForNextIntent()); } } return intent; diff --git a/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollCalibrator.kt b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollCalibrator.kt index c54c6b5eba5..22a69baacb0 100644 --- a/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollCalibrator.kt +++ b/src/com/android/settings/biometrics/fingerprint/UdfpsEnrollCalibrator.kt @@ -6,13 +6,14 @@ import androidx.lifecycle.Lifecycle interface UdfpsEnrollCalibrator { - fun getExtrasForNextIntent(isEnrolling: Boolean): Bundle + fun getExtrasForNextIntent(): Bundle fun onSaveInstanceState(outState: Bundle) - fun onFindSensorPage( + fun onWaitingPage( lifecycle: Lifecycle, fragmentManager: FragmentManager, - enableEnrollingRunnable: Runnable + enableEnrollingRunnable: Runnable? ) + } \ No newline at end of file