Merge "Update strings for summary in device unlock page" into main
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c05626e..971e40e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -833,6 +833,8 @@
     <string name="security_settings_face_preference_summary">Face added</string>
     <!-- Message shown in summary field when Face Unlock is not set up. [CHAR LIMIT=54] -->
     <string name="security_settings_face_preference_summary_none">Setup needed</string>
+    <!-- Message shown in summary field when Face Unlock is not set up. [CHAR LIMIT=54] -->
+    <string name="security_settings_face_preference_summary_none_new">Add face</string>
     <!-- Title shown for menu item that launches face settings or enrollment. [CHAR LIMIT=32] -->
     <string name="security_settings_face_preference_title_new">Face</string>
     <!-- Title shown for menu item that launches face settings or enrollment, for work profile. [CHAR LIMIT=50] -->
@@ -1006,6 +1008,8 @@
         }</string>
     <!-- message shown in summary field when no fingerprints are registered -->
     <string name="security_settings_fingerprint_preference_summary_none">Setup needed</string>
+    <!-- message shown in summary field when no fingerprints are registered -->
+    <string name="security_settings_fingerprint_preference_summary_none_new">Add fingerprint</string>
     <!-- Introduction title shown in fingerprint enrollment to introduce the fingerprint feature [CHAR LIMIT=29] -->
     <string name="security_settings_fingerprint_enroll_introduction_title">Set up your fingerprint</string>
     <!-- Introduction title shown in fingerprint enrollment when asking for parental consent for fingerprint unlock [CHAR LIMIT=29] -->
@@ -1771,6 +1775,8 @@
 
     <!-- Summary for "Configure lockscreen" when lock screen is off [CHAR LIMIT=45] -->
     <string name="unlock_set_unlock_mode_off">None</string>
+    <!-- Summary for "Configure lockscreen" when lock screen is off [CHAR LIMIT=45] -->
+    <string name="unlock_set_unlock_mode_off_new">Add PIN, pattern, password, or swipe</string>
     <!-- Summary for "Configure lockscreen" when security is disabled [CHAR LIMIT=45] -->
     <string name="unlock_set_unlock_mode_none">Swipe</string>
     <!-- Summary for "Configure lockscreen" when security pattern is enabled [CHAR LIMIT=45] -->
diff --git a/src/com/android/settings/biometrics/face/FaceStatusUtils.java b/src/com/android/settings/biometrics/face/FaceStatusUtils.java
index 302d677..ee5277e 100644
--- a/src/com/android/settings/biometrics/face/FaceStatusUtils.java
+++ b/src/com/android/settings/biometrics/face/FaceStatusUtils.java
@@ -98,11 +98,14 @@
             return mContext.getString(
                     com.android.settingslib.widget.restricted.R.string.disabled_by_admin);
         } else {
+            int summaryNoneResId = Flags.biometricsOnboardingEducation()
+                    ? R.string.security_settings_face_preference_summary_none_new
+                    : R.string.security_settings_face_preference_summary_none;
             return mContext.getResources()
                     .getString(
                             hasEnrolled()
                                     ? R.string.security_settings_face_preference_summary
-                                    : R.string.security_settings_face_preference_summary_none);
+                                    : summaryNoneResId);
         }
     }
 
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java
index 1ca564c..b7ca3aa 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtils.java
@@ -108,7 +108,9 @@
                     R.string.security_settings_fingerprint_preference_summary);
         } else {
             return mContext.getString(
-                    R.string.security_settings_fingerprint_preference_summary_none);
+                    Flags.biometricsOnboardingEducation()
+                            ? R.string.security_settings_fingerprint_preference_summary_none_new
+                            : R.string.security_settings_fingerprint_preference_summary_none);
         }
     }
 
diff --git a/src/com/android/settings/security/ScreenLockPreferenceDetailsUtils.java b/src/com/android/settings/security/ScreenLockPreferenceDetailsUtils.java
index b168568..e74db34 100644
--- a/src/com/android/settings/security/ScreenLockPreferenceDetailsUtils.java
+++ b/src/com/android/settings/security/ScreenLockPreferenceDetailsUtils.java
@@ -178,7 +178,9 @@
         if (!mLockPatternUtils.isSecure(userId)) {
             if (userId == mProfileChallengeUserId
                     || mLockPatternUtils.isLockScreenDisabled(userId)) {
-                return R.string.unlock_set_unlock_mode_off;
+                return com.android.settings.flags.Flags.biometricsOnboardingEducation()
+                        ? R.string.unlock_set_unlock_mode_off_new
+                        : R.string.unlock_set_unlock_mode_off;
             } else {
                 return R.string.unlock_set_unlock_mode_none;
             }
diff --git a/tests/robotests/src/com/android/settings/biometrics/face/FaceStatusPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/biometrics/face/FaceStatusPreferenceControllerTest.java
index c426f94..8f56514 100644
--- a/tests/robotests/src/com/android/settings/biometrics/face/FaceStatusPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/face/FaceStatusPreferenceControllerTest.java
@@ -36,6 +36,9 @@
 import android.hardware.face.Face;
 import android.hardware.face.FaceManager;
 import android.os.UserManager;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 
 import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.Preference;
@@ -50,6 +53,7 @@
 
 import org.junit.Before;
 import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -67,6 +71,8 @@
 
     private static final String TEST_PREF_KEY = "baz";
 
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
     @Mock
     private LockPatternUtils mLockPatternUtils;
     @Mock
@@ -125,7 +131,8 @@
     }
 
     @Test
-    public void updateState_noFace_shouldShowDefaultSummary() {
+    @DisableFlags(com.android.settings.flags.Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
+    public void updateState_noFace_flagOff_shouldShowDefaultSummary() {
         when(mFaceManager.isHardwareDetected()).thenReturn(true);
 
         mController.updateState(mPreference);
@@ -136,6 +143,18 @@
     }
 
     @Test
+    @EnableFlags(com.android.settings.flags.Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
+    public void updateState_noFace_flagOn_shouldShowDefaultSummary() {
+        when(mFaceManager.isHardwareDetected()).thenReturn(true);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getSummary()).isEqualTo(
+                mContext.getString(R.string.security_settings_face_preference_summary_none_new));
+        assertThat(mPreference.isVisible()).isTrue();
+    }
+
+    @Test
     public void updateState_hasFace_shouldShowSummary() {
         when(mFaceManager.isHardwareDetected()).thenReturn(true);
         when(mFaceManager.getEnrolledFaces(anyInt()))
diff --git a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceControllerTest.java
index 000ee933..de8c070 100644
--- a/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/biometrics/fingerprint/FingerprintStatusPreferenceControllerTest.java
@@ -36,6 +36,9 @@
 import android.hardware.fingerprint.Fingerprint;
 import android.hardware.fingerprint.FingerprintManager;
 import android.os.UserManager;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
+import android.platform.test.flag.junit.SetFlagsRule;
 
 import androidx.lifecycle.LifecycleOwner;
 import androidx.preference.Preference;
@@ -51,6 +54,7 @@
 
 import org.junit.Before;
 import org.junit.Ignore;
+import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.mockito.Mock;
@@ -66,6 +70,8 @@
 @Config(shadows = {ShadowRestrictedLockUtilsInternal.class})
 public class FingerprintStatusPreferenceControllerTest {
 
+    @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
     @Mock
     private LockPatternUtils mLockPatternUtils;
     @Mock
@@ -125,7 +131,8 @@
     }
 
     @Test
-    public void updateState_noFingerprint_shouldShowDefaultSummary() {
+    @DisableFlags(com.android.settings.flags.Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
+    public void updateState_noFingerprint_flagOff_shouldShowDefaultSummary() {
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
 
         mController.updateState(mPreference);
@@ -136,6 +143,19 @@
     }
 
     @Test
+    @EnableFlags(com.android.settings.flags.Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
+    public void updateState_noFingerprint_flagOn_shouldShowDefaultSummary() {
+        when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
+
+        mController.updateState(mPreference);
+
+        assertThat(mPreference.getSummary()).isEqualTo(
+                mContext.getString(
+                        R.string.security_settings_fingerprint_preference_summary_none_new));
+        assertThat(mPreference.isVisible()).isTrue();
+    }
+
+    @Test
     public void updateState_hasFingerprint_shouldShowSummary() {
         when(mFingerprintManager.isHardwareDetected()).thenReturn(true);
         when(mFingerprintManager.getEnrolledFingerprints(anyInt()))
diff --git a/tests/unit/src/com/android/settings/biometrics/face/FaceStatusUtilsTest.java b/tests/unit/src/com/android/settings/biometrics/face/FaceStatusUtilsTest.java
index f5d090a..87c43ac 100644
--- a/tests/unit/src/com/android/settings/biometrics/face/FaceStatusUtilsTest.java
+++ b/tests/unit/src/com/android/settings/biometrics/face/FaceStatusUtilsTest.java
@@ -172,7 +172,8 @@
     }
 
     @Test
-    public void getSummary_whenNotEnrolled_returnsSummaryNone() {
+    @DisableFlags(com.android.settings.flags.Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
+    public void getSummary_whenNotEnrolled_flagOff_returnsSummaryNone() {
         when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
 
         assertThat(mFaceStatusUtils.getSummary())
@@ -182,6 +183,17 @@
     }
 
     @Test
+    @EnableFlags(com.android.settings.flags.Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
+    public void getSummary_whenNotEnrolled_flagOn_returnsSummaryNone() {
+        when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
+
+        assertThat(mFaceStatusUtils.getSummary())
+                .isEqualTo(ResourcesUtils.getResourcesString(
+                        mApplicationContext,
+                        "security_settings_face_preference_summary_none_new"));
+    }
+
+    @Test
     public void getSummary_whenEnrolled_returnsSummary() {
         when(mFaceManager.hasEnrolledTemplates(anyInt())).thenReturn(true);
 
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 375c1ff..b603f4b 100644
--- a/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java
+++ b/tests/unit/src/com/android/settings/biometrics/fingerprint/FingerprintStatusUtilsTest.java
@@ -179,7 +179,8 @@
     }
 
     @Test
-    public void getSummary_whenNotEnrolled_returnsSummaryNone() {
+    @DisableFlags(com.android.settings.flags.Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
+    public void getSummary_whenNotEnrolled_flagOff_returnsSummaryNone() {
         when(mFingerprintManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
 
         assertThat(mFingerprintStatusUtils.getSummary())
@@ -189,6 +190,17 @@
     }
 
     @Test
+    @EnableFlags(com.android.settings.flags.Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
+    public void getSummary_whenNotEnrolled_flagOn_returnsSummaryNone() {
+        when(mFingerprintManager.hasEnrolledTemplates(anyInt())).thenReturn(false);
+
+        assertThat(mFingerprintStatusUtils.getSummary())
+                .isEqualTo(ResourcesUtils.getResourcesString(
+                        mApplicationContext,
+                        "security_settings_fingerprint_preference_summary_none_new"));
+    }
+
+    @Test
     public void getSummary_whenEnrolled_returnsSummary() {
         final int enrolledFingerprintsCount = 2;
         final int stringResId = ResourcesUtils.getResourcesId(
diff --git a/tests/unit/src/com/android/settings/safetycenter/FaceSafetySourceTest.java b/tests/unit/src/com/android/settings/safetycenter/FaceSafetySourceTest.java
index 9a162ae..9335ced 100644
--- a/tests/unit/src/com/android/settings/safetycenter/FaceSafetySourceTest.java
+++ b/tests/unit/src/com/android/settings/safetycenter/FaceSafetySourceTest.java
@@ -187,7 +187,7 @@
 
         assertSafetySourceDisabledDataSetWithSingularSummary(
                 "security_settings_face_preference_title_new",
-                "security_settings_face_preference_summary_none");
+                "security_settings_face_preference_summary_none_new");
     }
 
     @Test
@@ -205,7 +205,7 @@
 
         assertSafetySourceDisabledDataSetWithSingularSummary(
                 "security_settings_face_preference_title_new",
-                "security_settings_face_preference_summary_none");
+                "security_settings_face_preference_summary_none_new");
     }
 
     @Test
@@ -220,7 +220,7 @@
 
         assertSafetySourceEnabledDataSetWithSingularSummary(
                 "security_settings_face_preference_title_new",
-                "security_settings_face_preference_summary_none",
+                "security_settings_face_preference_summary_none_new",
                 FaceEnrollIntroductionInternal.class.getName());
     }
 
diff --git a/tests/unit/src/com/android/settings/safetycenter/FingerprintSafetySourceTest.java b/tests/unit/src/com/android/settings/safetycenter/FingerprintSafetySourceTest.java
index fd109f6..91e7953 100644
--- a/tests/unit/src/com/android/settings/safetycenter/FingerprintSafetySourceTest.java
+++ b/tests/unit/src/com/android/settings/safetycenter/FingerprintSafetySourceTest.java
@@ -203,7 +203,7 @@
 
         assertSafetySourceDisabledDataSetWithSingularSummary(
                 "security_settings_fingerprint",
-                "security_settings_fingerprint_preference_summary_none");
+                "security_settings_fingerprint_preference_summary_none_new");
     }
 
     @Test
@@ -222,7 +222,7 @@
 
         assertSafetySourceDisabledDataSetWithSingularSummary(
                 "security_settings_fingerprint",
-                "security_settings_fingerprint_preference_summary_none");
+                "security_settings_fingerprint_preference_summary_none_new");
     }
 
     @Test
@@ -238,7 +238,7 @@
 
         assertSafetySourceEnabledDataSetWithSingularSummary(
                 "security_settings_fingerprint",
-                "security_settings_fingerprint_preference_summary_none",
+                "security_settings_fingerprint_preference_summary_none_new",
                 FingerprintSettings.class.getName());
     }
 
diff --git a/tests/unit/src/com/android/settings/security/ScreenLockPreferenceDetailsUtilsTest.java b/tests/unit/src/com/android/settings/security/ScreenLockPreferenceDetailsUtilsTest.java
index 2535870..2e674e0 100644
--- a/tests/unit/src/com/android/settings/security/ScreenLockPreferenceDetailsUtilsTest.java
+++ b/tests/unit/src/com/android/settings/security/ScreenLockPreferenceDetailsUtilsTest.java
@@ -32,10 +32,13 @@
 import android.content.res.Resources;
 import android.os.UserManager;
 import android.os.storage.StorageManager;
+import android.platform.test.annotations.DisableFlags;
+import android.platform.test.annotations.EnableFlags;
 import android.platform.test.annotations.RequiresFlagsDisabled;
 import android.platform.test.annotations.RequiresFlagsEnabled;
 import android.platform.test.flag.junit.CheckFlagsRule;
 import android.platform.test.flag.junit.DeviceFlagsValueProvider;
+import android.platform.test.flag.junit.SetFlagsRule;
 
 import androidx.test.core.app.ApplicationProvider;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
@@ -65,6 +68,8 @@
     private static final int USER_ID = 11;
 
     @Rule
+    public final SetFlagsRule mSetFlagsRule = new SetFlagsRule();
+    @Rule
     public final CheckFlagsRule mCheckFlagsRule = DeviceFlagsValueProvider.createCheckFlagsRule();
     @Mock
     private LockPatternUtils mLockPatternUtils;
@@ -118,7 +123,8 @@
     }
 
     @Test
-    public void getSummary_unsecureAndDisabledPattern_shouldReturnUnlockModeOff() {
+    @DisableFlags(com.android.settings.flags.Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
+    public void getSummary_unsecureAndDisabledPattern_flagOff_shouldReturnUnlockModeOff() {
         final String summary = prepareString("unlock_set_unlock_mode_off", "unlockModeOff");
 
         when(mLockPatternUtils.isSecure(USER_ID)).thenReturn(false);
@@ -128,6 +134,17 @@
     }
 
     @Test
+    @EnableFlags(com.android.settings.flags.Flags.FLAG_BIOMETRICS_ONBOARDING_EDUCATION)
+    public void getSummary_unsecureAndDisabledPattern_flagOn_shouldReturnUnlockModeOff() {
+        final String summary = prepareString("unlock_set_unlock_mode_off_new", "unlockModeOff");
+
+        when(mLockPatternUtils.isSecure(USER_ID)).thenReturn(false);
+        when(mLockPatternUtils.isLockScreenDisabled(anyInt())).thenReturn(true);
+
+        assertThat(mScreenLockPreferenceDetailsUtils.getSummary(USER_ID)).isEqualTo(summary);
+    }
+
+    @Test
     public void getSummary_unsecurePattern_shouldReturnUnlockModeNone() {
         final String summary =
                 prepareString("unlock_set_unlock_mode_none", "unlockModeNone");