Merge "Support the ability to enroll face unlock first" into main
This commit is contained in:
@@ -107,7 +107,10 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
|
||||
// intent will include this extra containing a bundle of the form:
|
||||
// "modality" -> consented (boolean).
|
||||
public static final String EXTRA_PARENTAL_CONSENT_STATUS = "consent_status";
|
||||
|
||||
// Whether the face enrollment should be launched first when there are multiple biometrics
|
||||
// supported.
|
||||
public static final String EXTRA_LAUNCH_FACE_ENROLL_FIRST =
|
||||
"launch_face_enroll_first";
|
||||
private static final String SAVED_STATE_CONFIRMING_CREDENTIALS = "confirming_credentials";
|
||||
private static final String SAVED_STATE_IS_SINGLE_ENROLLING =
|
||||
"is_single_enrolling";
|
||||
@@ -130,6 +133,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
|
||||
private boolean mIsFingerprintEnrollable = false;
|
||||
private boolean mParentalOptionsRequired = false;
|
||||
private boolean mSkipReturnToParent = false;
|
||||
private boolean mLaunchFaceEnrollFirst = false;
|
||||
private Bundle mParentalOptions;
|
||||
@Nullable private Long mGkPwHandle;
|
||||
@Nullable private ParentalConsentHelper mParentalConsentHelper;
|
||||
@@ -214,6 +218,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
|
||||
|
||||
mParentalOptionsRequired = intent.getBooleanExtra(EXTRA_REQUIRE_PARENTAL_CONSENT, false);
|
||||
mSkipReturnToParent = intent.getBooleanExtra(EXTRA_SKIP_RETURN_TO_PARENT, false);
|
||||
mLaunchFaceEnrollFirst = intent.getBooleanExtra(EXTRA_LAUNCH_FACE_ENROLL_FIRST, false);
|
||||
|
||||
// determine what can be enrolled
|
||||
final boolean isSetupWizard = WizardManagerHelper.isAnySetupWizard(getIntent());
|
||||
@@ -221,6 +226,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
|
||||
|
||||
Log.d(TAG, "parentalOptionsRequired: " + mParentalOptionsRequired
|
||||
+ ", skipReturnToParent: " + mSkipReturnToParent
|
||||
+ ", launchFaceEnrollFirst: " + mLaunchFaceEnrollFirst
|
||||
+ ", isSetupWizard: " + isSetupWizard
|
||||
+ ", isMultiSensor: " + isMultiSensor);
|
||||
|
||||
@@ -356,7 +362,8 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
|
||||
} else if (canUseFace || canUseFingerprint) {
|
||||
if (mGkPwHandle == null) {
|
||||
setOrConfirmCredentialsNow();
|
||||
} else if (canUseFingerprint && mIsFingerprintEnrollable) {
|
||||
} else if (canUseFingerprint && mIsFingerprintEnrollable
|
||||
&& !(canUseFace && mIsFaceEnrollable && mLaunchFaceEnrollFirst)) {
|
||||
launchFingerprintOnlyEnroll();
|
||||
} else if (canUseFace && mIsFaceEnrollable) {
|
||||
launchFaceOnlyEnroll();
|
||||
@@ -510,7 +517,8 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
|
||||
int requestCode, int resultCode, Intent data) {
|
||||
|
||||
Log.d(TAG, "handleOnActivityResultWhileEnrolling, request = " + requestCode + ""
|
||||
+ ", resultCode = " + resultCode);
|
||||
+ ", resultCode = " + resultCode + ", launchFaceEnrollFirst="
|
||||
+ mLaunchFaceEnrollFirst);
|
||||
switch (requestCode) {
|
||||
case REQUEST_HANDOFF_PARENT:
|
||||
setResult(RESULT_OK, newResultIntent());
|
||||
@@ -526,7 +534,8 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
|
||||
// SetupFingerprintEnrollIntroduction/FingerprintEnrollmentActivity
|
||||
TransitionHelper.applyForwardTransition(this, TRANSITION_FADE_THROUGH);
|
||||
updateGatekeeperPasswordHandle(data);
|
||||
if (mIsFingerprintEnrollable) {
|
||||
if (mIsFingerprintEnrollable
|
||||
&& !(mIsFaceEnrollable && mLaunchFaceEnrollFirst)) {
|
||||
launchFingerprintOnlyEnroll();
|
||||
} else {
|
||||
launchFaceOnlyEnroll();
|
||||
@@ -548,7 +557,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
|
||||
}
|
||||
if ((resultCode == BiometricEnrollBase.RESULT_SKIP
|
||||
|| resultCode == BiometricEnrollBase.RESULT_FINISHED)
|
||||
&& mIsFaceEnrollable) {
|
||||
&& mIsFaceEnrollable && !mLaunchFaceEnrollFirst) {
|
||||
// Apply forward animation during the transition from
|
||||
// SetupFingerprintEnroll*/FingerprintEnrollmentActivity to
|
||||
// SetupFaceEnrollIntroduction
|
||||
@@ -556,6 +565,9 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
|
||||
mIsPreviousEnrollmentCanceled =
|
||||
resultCode != BiometricEnrollBase.RESULT_FINISHED;
|
||||
launchFaceOnlyEnroll();
|
||||
} else if (resultCode == Activity.RESULT_CANCELED && mIsFaceEnrollable
|
||||
&& mLaunchFaceEnrollFirst) {
|
||||
launchFaceOnlyEnroll();
|
||||
} else {
|
||||
notifySafetyIssueActionLaunchedIfNeeded(resultCode);
|
||||
finishOrLaunchHandToParent(resultCode);
|
||||
@@ -563,7 +575,14 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
|
||||
break;
|
||||
case REQUEST_SINGLE_ENROLL_FACE:
|
||||
mIsSingleEnrolling = false;
|
||||
if (resultCode == Activity.RESULT_CANCELED && mIsFingerprintEnrollable) {
|
||||
if ((resultCode == BiometricEnrollBase.RESULT_SKIP
|
||||
|| resultCode == BiometricEnrollBase.RESULT_FINISHED)
|
||||
&& mIsFingerprintEnrollable && mLaunchFaceEnrollFirst) {
|
||||
mIsPreviousEnrollmentCanceled =
|
||||
resultCode != BiometricEnrollBase.RESULT_FINISHED;
|
||||
launchFingerprintOnlyEnroll();
|
||||
} else if (resultCode == Activity.RESULT_CANCELED && mIsFingerprintEnrollable
|
||||
&& !mLaunchFaceEnrollFirst) {
|
||||
mIsPreviousEnrollmentCanceled = true;
|
||||
launchFingerprintOnlyEnroll();
|
||||
} else {
|
||||
|
@@ -43,6 +43,7 @@ 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.FaceEnroll;
|
||||
import com.android.settings.biometrics.fingerprint.FingerprintEnroll;
|
||||
import com.android.settings.biometrics.fingerprint.FingerprintEnrollFindSensor;
|
||||
import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollFindSensor;
|
||||
@@ -282,9 +283,7 @@ public class BiometricUtils {
|
||||
*/
|
||||
public static Intent getFaceIntroIntent(@NonNull Context context,
|
||||
@NonNull Intent activityIntent) {
|
||||
final Intent intent = new Intent(context,
|
||||
FeatureFactory.getFeatureFactory().getFaceFeatureProvider()
|
||||
.getEnrollActivityClassProvider().getNext());
|
||||
final Intent intent = new Intent(context, FaceEnroll.class);
|
||||
WizardManagerHelper.copyWizardManagerExtras(activityIntent, intent);
|
||||
return intent;
|
||||
}
|
||||
|
Reference in New Issue
Block a user