Fix the flicker of FingerprintSettings before FingerprintEnrollIntro.

Change to launch FingerprintEnrollIntroductionInternal directly when no fingerprint enrolled and fingerprint is the only biometrics. This avoids the flicker of FingerPrintSettings before showing the enroll introduction.
This partially reverts the change in ag/19732076.

Bug: 256334588

Test: manual test following cases on fp-only devices, and enable don't
      keep activity and test them again.
      1. fp enrollment on SUW
      2. fp add another on SUW
      3. add first fp on Security Settings
      4. add another fp on Security Settings
Test: atest FingerprintStatusUtilsTest BiometricsSafetySourceTest

Change-Id: I057b00fbca6660012887ebedf4d65c2c3d35792b
Merged-In: I057b00fbca6660012887ebedf4d65c2c3d35792b
(cherry picked from commit 6bed01f3159115d158eaf264661721641ac33f7c)
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java
index 71cdcf7..18db774 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java
@@ -78,7 +78,9 @@
      * Returns the class name of the Settings page corresponding to fingerprint settings.
      */
     public String getSettingsClassName() {
-        return FingerprintSettings.class.getName();
+        return !hasEnrolled() && isAvailable()
+            ? FingerprintEnrollIntroductionInternal.class.getName()
+            : FingerprintSettings.class.getName();
     }
 
     /**
diff --git a/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java b/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java
index 69e5e2f..a5d74a0 100644
--- a/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java
+++ b/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java
@@ -179,8 +179,20 @@
     }
 
     @Test
-    public void getSettingsClassName_whenNotEnrolled_returnsFingerprintSettings() {
+    public void getSettingsClassName_whenNotEnrolled_fingerprintOnly_returnsFingerprintEnrollInduction() {
         when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false);
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
+        when(mFaceManager.isHardwareDetected()).thenReturn(false);
+
+        assertThat(mFingerprintStatusUtils.getSettingsClassName())
+                .isEqualTo(FingerprintEnrollIntroductionInternal.class.getName());
+    }
+
+    @Test
+    public void getSettingsClassName_whenNotEnrolled_fingerprintNotOnly_returnsFingerprintSettings() {
+        when(mFingerprintManager.hasEnrolledFingerprints(anyInt())).thenReturn(false);
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
+        when(mFaceManager.isHardwareDetected()).thenReturn(true);
 
         assertThat(mFingerprintStatusUtils.getSettingsClassName())
                 .isEqualTo(FingerprintSettings.class.getName());