diff --git a/res/values/config.xml b/res/values/config.xml
index 0b0361a42e8..3ba98f01b73 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -292,6 +292,9 @@
false
+
+ true
+
diff --git a/src/com/android/settings/biometrics/BiometricEnrollActivity.java b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
index 932c41073e4..bb16f0bb9b6 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollActivity.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
@@ -48,6 +48,7 @@ import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R;
import com.android.settings.SetupWizardUtils;
import com.android.settings.core.InstrumentedActivity;
+import com.android.settings.overlay.FeatureFactory;
import com.android.settings.password.ChooseLockGeneric;
import com.android.settings.password.ChooseLockPattern;
import com.android.settings.password.ChooseLockSettingsHelper;
@@ -215,11 +216,16 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
mIsFaceEnrollable =
faceManager.getEnrolledFaces(mUserId).size() < maxEnrolls;
- // exclude face enrollment from setup wizard if configured as a convenience
- // isSetupWizard is always false for unicorn enrollment, so if consent is
- // required check if setup has completed instead.
- final boolean isSettingUp = isSetupWizard || (mParentalOptionsRequired
+ final boolean parentalConsent = isSetupWizard || (mParentalOptionsRequired
&& !WizardManagerHelper.isUserSetupComplete(this));
+ if (parentalConsent && isMultiSensor && mIsFaceEnrollable) {
+ // Exclude face enrollment from setup wizard if feature config not supported
+ // in setup wizard flow, we still allow user enroll faces through settings.
+ mIsFaceEnrollable = FeatureFactory.getFactory(getApplicationContext())
+ .getFaceFeatureProvider()
+ .isSetupWizardSupported(getApplicationContext());
+ Log.d(TAG, "config_suw_support_face_enroll: " + mIsFaceEnrollable);
+ }
}
}
if (mHasFeatureFingerprint) {
diff --git a/src/com/android/settings/biometrics/face/FaceFeatureProvider.java b/src/com/android/settings/biometrics/face/FaceFeatureProvider.java
index 26ea2615f1c..cabb528c24e 100644
--- a/src/com/android/settings/biometrics/face/FaceFeatureProvider.java
+++ b/src/com/android/settings/biometrics/face/FaceFeatureProvider.java
@@ -22,4 +22,7 @@ import android.content.Context;
public interface FaceFeatureProvider {
/** Returns true if attention checking is supported. */
boolean isAttentionSupported(Context context);
+
+ /** Returns true if setup wizard supported face enrollment. */
+ boolean isSetupWizardSupported(Context context);
}
diff --git a/src/com/android/settings/biometrics/face/FaceFeatureProviderImpl.java b/src/com/android/settings/biometrics/face/FaceFeatureProviderImpl.java
index e5086007cde..0c8709b0c56 100644
--- a/src/com/android/settings/biometrics/face/FaceFeatureProviderImpl.java
+++ b/src/com/android/settings/biometrics/face/FaceFeatureProviderImpl.java
@@ -17,7 +17,8 @@
package com.android.settings.biometrics.face;
import android.content.Context;
-import android.provider.Settings;
+
+import androidx.annotation.NonNull;
public class FaceFeatureProviderImpl implements FaceFeatureProvider {
@@ -25,4 +26,9 @@ public class FaceFeatureProviderImpl implements FaceFeatureProvider {
public boolean isAttentionSupported(Context context) {
return true;
}
+
+ @Override
+ public boolean isSetupWizardSupported(@NonNull Context context) {
+ return true;
+ }
}