diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 5cd2bb394f8..18709353cc4 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -2792,6 +2792,10 @@
android:exported="false"
android:theme="@style/GlifTheme.Light"
android:taskAffinity="com.android.settings.root" />
+
+ get() = enrollActivityProvider.addAnother
+ }
+
/**
* The class of the next activity to launch. This is open to allow subclasses to provide their
* own behavior. Defaults to the default activity class provided by the
@@ -49,7 +57,7 @@ open class FingerprintEnroll: AppCompatActivity() {
get() = enrollActivityProvider.default
protected val enrollActivityProvider: FingerprintEnrollActivityClassProvider
- get() = featureFactory.fingerprintFeatureProvider.enrollActivityClassProvider
+ get() = featureFactory.fingerprintFeatureProvider.getEnrollActivityClassProvider(this)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollActivityClassProvider.kt b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollActivityClassProvider.kt
index 853a3df01b8..14261e9524a 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollActivityClassProvider.kt
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollActivityClassProvider.kt
@@ -26,6 +26,8 @@ open class FingerprintEnrollActivityClassProvider {
get() = SetupFingerprintEnrollIntroduction::class.java
open val internal: Class
get() = FingerprintEnrollIntroductionInternal::class.java
+ open val addAnother: Class
+ get() = FingerprintEnrollEnrolling::class.java
companion object {
@JvmStatic
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProvider.java b/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProvider.java
index baa88b5655a..06f8d74b802 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProvider.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintFeatureProvider.java
@@ -57,7 +57,7 @@ public interface FingerprintFeatureProvider {
* @return the provider
*/
@NonNull
- default FingerprintEnrollActivityClassProvider getEnrollActivityClassProvider() {
+ default FingerprintEnrollActivityClassProvider getEnrollActivityClassProvider(@NonNull Context context) {
return FingerprintEnrollActivityClassProvider.getInstance();
}
}
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index 7d4716837a4..d8a14f1e450 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -537,8 +537,9 @@ public class FingerprintSettings extends SubSettings {
activity, DevicePolicyManager.KEYGUARD_DISABLE_FINGERPRINT, mUserId);
final Intent helpIntent = HelpUtils.getHelpIntent(
activity, getString(getHelpResource()), activity.getClass().getName());
- final View.OnClickListener learnMoreClickListener = (v) ->
- activity.startActivityForResult(helpIntent, 0);
+ final View.OnClickListener learnMoreClickListener = (v) -> {
+ activity.startActivityForResult(helpIntent, 0);
+ };
mFooterColumns.clear();
if (admin != null) {
@@ -910,7 +911,7 @@ public class FingerprintSettings extends SubSettings {
mIsEnrolling = true;
Intent intent = new Intent();
intent.setClassName(SETTINGS_PACKAGE_NAME,
- FingerprintEnrollEnrolling.class.getName());
+ FingerprintEnroll.AddAdditionalFingerprint.class.getName());
intent.putExtra(Intent.EXTRA_USER_ID, mUserId);
intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, mToken);
if (mCalibrator != null) {
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollTest.kt b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollTest.kt
index 07cdffb942c..0bfa9f31220 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollTest.kt
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollTest.kt
@@ -24,6 +24,7 @@ import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mockito.`when`
+import org.mockito.kotlin.any
import org.robolectric.Robolectric
import org.robolectric.RobolectricTestRunner
import org.robolectric.Shadows
@@ -46,7 +47,7 @@ class FingerprintEnrollTest {
@Before
fun setUp() {
featureFactory = FakeFeatureFactory.setupForTest()
- `when`(featureFactory.fingerprintFeatureProvider.enrollActivityClassProvider)
+ `when`(featureFactory.fingerprintFeatureProvider.getEnrollActivityClassProvider(any()))
.thenReturn(activityProvider)
}
@@ -81,6 +82,15 @@ class FingerprintEnrollTest {
verifyLaunchNextActivity(activity, activityProvider.internal)
}
+ @Test
+ fun testAndFinishLaunchAddAdditional() {
+ // Run
+ val activity = setupActivity(FingerprintEnroll.AddAdditionalFingerprint::class.java)
+
+ // Verify
+ verifyLaunchNextActivity(activity, activityProvider.addAnother)
+ }
+
private fun verifyLaunchNextActivity(
currentActivityInstance : FingerprintEnroll,
nextActivityClass: Class