diff --git a/res/drawable/ic_face_enroll_introduction_glasses.xml b/res/drawable/ic_face_enroll_introduction_glasses.xml
new file mode 100644
index 00000000000..5b259d6882a
--- /dev/null
+++ b/res/drawable/ic_face_enroll_introduction_glasses.xml
@@ -0,0 +1,28 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/res/layout/face_enroll_introduction.xml b/res/layout/face_enroll_introduction.xml
index 826f5fe0a34..22dba83734a 100644
--- a/res/layout/face_enroll_introduction.xml
+++ b/res/layout/face_enroll_introduction.xml
@@ -1,6 +1,6 @@
-
-
+ android:layout_marginBottom="12dp">
+
+
+ android:orientation="horizontal"
+ android:paddingTop="24dp">
-
+ android:background="@drawable/ic_face_enroll_introduction_glasses"/>
+
+
+ android:text="@string/security_settings_face_enroll_introduction_info_glasses"
+ android:textColor="?android:attr/textColorPrimary"
+ android:textSize="16sp"
+ android:lineSpacingExtra="4sp"/>
@@ -96,15 +101,19 @@
-
+ android:background="@drawable/ic_face_enroll_introduction_visibility"/>
+
+
+ android:text="@string/security_settings_face_enroll_introduction_info_looking"
+ android:textColor="?android:attr/textColorPrimary"
+ android:textSize="16sp"
+ android:lineSpacingExtra="4sp"/>
@@ -117,40 +126,70 @@
-
+ android:background="@drawable/ic_face_enroll_introduction_shield"/>
+
+
+ android:layout_height="wrap_content"
+ android:text="@string/security_settings_face_enroll_introduction_info_security"
+ android:textColor="?android:attr/textColorPrimary"
+ android:textSize="16sp"
+ android:lineSpacingExtra="4sp"/>
-
+
+
+ android:text="@string/security_settings_face_enroll_introduction_how_title"
+ android:textColor="?android:attr/textColorPrimary"
+ android:textSize="20sp"/>
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
+
\ No newline at end of file
diff --git a/res/values/config.xml b/res/values/config.xml
index b2323c27548..d37db441ea4 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -269,11 +269,6 @@
-
-
- com.android.settings.biometrics.face.FaceEnrollIntroduction
-
-
diff --git a/res/values/strings.xml b/res/values/strings.xml
index f8963318819..0d032aaa444 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -777,7 +777,7 @@
No thanks
- Agree
+ I agree
More
@@ -790,14 +790,22 @@
Use your face to unlock your phone or approve purchases.\n\nNote: You can\u2019t use your face to unlock this device. For more information, contact your organization\u2019s admin.
Use your face to unlock your phone, authorize purchases, or sign in to apps
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Center your face in the circle
diff --git a/src/com/android/settings/biometrics/BiometricUtils.java b/src/com/android/settings/biometrics/BiometricUtils.java
index 9de81054dca..03cdb0d653d 100644
--- a/src/com/android/settings/biometrics/BiometricUtils.java
+++ b/src/com/android/settings/biometrics/BiometricUtils.java
@@ -16,8 +16,6 @@
package com.android.settings.biometrics;
-import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
-
import android.app.Activity;
import android.app.PendingIntent;
import android.app.admin.DevicePolicyManager;
@@ -34,8 +32,8 @@ import androidx.fragment.app.FragmentActivity;
import com.android.internal.widget.LockPatternUtils;
import com.android.internal.widget.VerifyCredentialResponse;
-import com.android.settings.R;
import com.android.settings.SetupWizardUtils;
+import com.android.settings.biometrics.face.FaceEnrollIntroduction;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollFindSensor;
import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction;
import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollIntroduction;
@@ -173,9 +171,7 @@ public class BiometricUtils {
*/
public static Intent getFaceIntroIntent(@NonNull Context context,
@NonNull Intent activityIntent) {
- final String className = context.getString(R.string.config_face_enroll_introduction);
- Intent intent = new Intent();
- intent.setClassName(SETTINGS_PACKAGE_NAME, className);
+ final Intent intent = new Intent(context, FaceEnrollIntroduction.class);
WizardManagerHelper.copyWizardManagerExtras(activityIntent, intent);
return intent;
}
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
index c81c275f903..d93eef70ff3 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollIntroduction.java
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2018 The Android Open Source Project
+ * Copyright (C) 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -11,7 +11,7 @@
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
- * limitations under the License
+ * limitations under the License.
*/
package com.android.settings.biometrics.face;
@@ -41,8 +41,11 @@ import com.google.android.setupdesign.template.RequireScrollMixin;
import java.util.List;
+/**
+ * Provides introductory info about face unlock and prompts the user to agree before starting face
+ * enrollment.
+ */
public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
-
private static final String TAG = "FaceEnrollIntroduction";
private FaceManager mFaceManager;
@@ -66,6 +69,9 @@ public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ getLayout().setDescriptionText(getString(
+ R.string.security_settings_face_enroll_introduction_message));
+
mFaceManager = Utils.getFaceManagerOrNull(this);
mFaceFeatureProvider = FeatureFactory.getFactory(getApplicationContext())
.getFaceFeatureProvider();
@@ -82,7 +88,7 @@ public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
FooterButton.Builder nextButtonBuilder = new FooterButton.Builder(this)
.setText(R.string.security_settings_face_enroll_introduction_agree)
- .setButtonType(FooterButton.ButtonType.NEXT)
+ .setButtonType(FooterButton.ButtonType.OPT_IN)
.setTheme(R.style.SudGlifButton_Primary);
if (maxFacesEnrolled()) {
nextButtonBuilder.setListener(this::onNextButtonClick);
@@ -97,13 +103,6 @@ public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
this::onNextButtonClick);
}
- final TextView footer2 = findViewById(R.id.face_enroll_introduction_footer_part_2);
- final int footer2TextResource =
- mFaceFeatureProvider.isAttentionSupported(getApplicationContext())
- ? R.string.security_settings_face_enroll_introduction_footer_part_2
- : R.string.security_settings_face_settings_footer_attention_not_supported;
- footer2.setText(footer2TextResource);
-
// This path is an entry point for SetNewPasswordController, e.g.
// adb shell am start -a android.app.action.SET_NEW_PASSWORD
if (mToken == null && BiometricUtils.containsGatekeeperPasswordHandle(getIntent())) {
diff --git a/src/com/android/settings/biometrics/face/FaceStatusPreferenceController.java b/src/com/android/settings/biometrics/face/FaceStatusPreferenceController.java
index c2143c043e0..2ceaa0d7db2 100644
--- a/src/com/android/settings/biometrics/face/FaceStatusPreferenceController.java
+++ b/src/com/android/settings/biometrics/face/FaceStatusPreferenceController.java
@@ -68,7 +68,7 @@ public class FaceStatusPreferenceController extends BiometricStatusPreferenceCon
@Override
protected String getEnrollClassName() {
- return mContext.getResources().getString(R.string.config_face_enroll_introduction);
+ return FaceEnrollIntroduction.class.getName();
}
}