SUW enrolls FP before Face

Test: During SUW verified Fingerprint enrollment
comes before face.
Test: During SUW enrolled multiple fingerprints than 1 face.
Test: Skipped and cancelled on every possible screen to ensure behavior
was correct.
Bug: 228607474

Change-Id: I4c50763a804fe4eb9d62451eb2f957545857723e
diff --git a/src/com/android/settings/biometrics/MultiBiometricEnrollHelper.java b/src/com/android/settings/biometrics/MultiBiometricEnrollHelper.java
index 5cc45b1..94fbb76 100644
--- a/src/com/android/settings/biometrics/MultiBiometricEnrollHelper.java
+++ b/src/com/android/settings/biometrics/MultiBiometricEnrollHelper.java
@@ -37,6 +37,7 @@
     private static final int REQUEST_FINGERPRINT_ENROLL = 3001;
 
     public static final String EXTRA_ENROLL_AFTER_FACE = "enroll_after_face";
+    public static final String EXTRA_ENROLL_AFTER_FINGERPRINT = "enroll_after_finger";
     public static final String EXTRA_SKIP_PENDING_ENROLL = "skip_pending_enroll";
 
     @NonNull private final FragmentActivity mActivity;
@@ -55,10 +56,10 @@
     }
 
     void startNextStep() {
-        if (mRequestEnrollFace) {
-            launchFaceEnroll();
-        } else if (mRequestEnrollFingerprint) {
+        if (mRequestEnrollFingerprint) {
             launchFingerprintEnroll();
+        } else if (mRequestEnrollFace) {
+            launchFaceEnroll();
         } else {
             mActivity.setResult(BiometricEnrollIntroduction.RESULT_SKIP);
             mActivity.finish();
@@ -74,20 +75,6 @@
                     mActivity.getIntent());
             faceIntent.putExtra(BiometricEnrollBase.EXTRA_KEY_SENSOR_ID, sensorId);
             faceIntent.putExtra(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, challenge);
-
-            if (mRequestEnrollFingerprint) {
-                // Give FaceEnroll a pendingIntent pointing to fingerprint enrollment, so that it
-                // can be started when user skips or finishes face enrollment. FLAG_UPDATE_CURRENT
-                // ensures it is launched with the most recent values.
-                final Intent fpIntent = BiometricUtils.getFingerprintIntroIntent(mActivity,
-                        mActivity.getIntent());
-                fpIntent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, mGkPwHandle);
-                final PendingIntent fpAfterFaceIntent = PendingIntent.getActivity(mActivity,
-                        0 /* requestCode */, fpIntent,
-                        PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT);
-                faceIntent.putExtra(EXTRA_ENROLL_AFTER_FACE, fpAfterFaceIntent);
-            }
-
             BiometricUtils.launchEnrollForResult(mActivity, faceIntent, REQUEST_FACE_ENROLL,
                     hardwareAuthToken, mGkPwHandle, mUserId);
         });
@@ -103,6 +90,19 @@
                     mActivity.getIntent());
             intent.putExtra(BiometricEnrollBase.EXTRA_KEY_SENSOR_ID, sensorId);
             intent.putExtra(BiometricEnrollBase.EXTRA_KEY_CHALLENGE, challenge);
+            if (mRequestEnrollFace) {
+                // Give FingerprintEnroll a pendingIntent pointing to face enrollment, so that it
+                // can be started when user skips or finishes fingerprint enrollment.
+                // FLAG_UPDATE_CURRENT ensures it is launched with the most recent values.
+                final Intent faceIntent = BiometricUtils.getFaceIntroIntent(mActivity,
+                        mActivity.getIntent());
+                faceIntent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE, mGkPwHandle);
+                final PendingIntent faceAfterFp = PendingIntent.getActivity(mActivity,
+                        0 /* requestCode */, faceIntent,
+                        PendingIntent.FLAG_IMMUTABLE | PendingIntent.FLAG_UPDATE_CURRENT);
+                intent.putExtra(EXTRA_ENROLL_AFTER_FINGERPRINT, faceAfterFp);
+            }
+
             BiometricUtils.launchEnrollForResult(mActivity, intent, REQUEST_FINGERPRINT_ENROLL,
                     hardwareAuthToken, mGkPwHandle, mUserId);
         }));