From c702e1bfba0ae4f1fd4fa9bbf4fa27c189ef82e1 Mon Sep 17 00:00:00 2001 From: Kevin Chyn Date: Thu, 1 Jul 2021 15:10:29 -0700 Subject: [PATCH] Only launchHandoffToParent in SUW Settings flow does not need to show this screen Fixes: 192586840 Test: adb shell am start -a android.settings.BIOMETRIC_ENROLL --ez require_consent true --ez skip_return_to_parent Test: adb shell am start -a android.settings.BIOMETRIC_ENROLL --ez require_consent true Test: atest com.android.settings.biometrics.ParentalConsentHelperTest Change-Id: Ic2edbb5ec9693d05c89206d49249f59fd968aa2f --- .../biometrics/BiometricEnrollActivity.java | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/biometrics/BiometricEnrollActivity.java b/src/com/android/settings/biometrics/BiometricEnrollActivity.java index 26d8a45c5c9..f6396c330a7 100644 --- a/src/com/android/settings/biometrics/BiometricEnrollActivity.java +++ b/src/com/android/settings/biometrics/BiometricEnrollActivity.java @@ -82,6 +82,10 @@ public class BiometricEnrollActivity extends InstrumentedActivity { // Intent extra. If true, parental consent will be requested before user enrollment. public static final String EXTRA_REQUIRE_PARENTAL_CONSENT = "require_consent"; + // Intent extra. If true, the screen asking the user to return the device to their parent will + // be skipped after enrollment. + public static final String EXTRA_SKIP_RETURN_TO_PARENT = "skip_return_to_parent"; + // If EXTRA_REQUIRE_PARENTAL_CONSENT was used to start the activity then the result // intent will include this extra containing a bundle of the form: // "modality" -> consented (boolean). @@ -102,6 +106,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity { private boolean mIsFaceEnrollable = false; private boolean mIsFingerprintEnrollable = false; private boolean mParentalOptionsRequired = false; + private boolean mSkipReturnToParent = false; private Bundle mParentalOptions; @Nullable private Long mGkPwHandle; @Nullable private ParentalConsentHelper mParentalConsentHelper; @@ -170,6 +175,7 @@ public class BiometricEnrollActivity extends InstrumentedActivity { // determine what can be enrolled final boolean isSetupWizard = WizardManagerHelper.isAnySetupWizard(getIntent()); + if (mHasFeatureFace) { final FaceManager faceManager = getSystemService(FaceManager.class); final List faceProperties = @@ -193,9 +199,11 @@ public class BiometricEnrollActivity extends InstrumentedActivity { } } - // TODO(b/188847063): replace with real flag when ready - mParentalOptionsRequired = intent.getBooleanExtra( - BiometricEnrollActivity.EXTRA_REQUIRE_PARENTAL_CONSENT, false); + mParentalOptionsRequired = intent.getBooleanExtra(EXTRA_REQUIRE_PARENTAL_CONSENT, false); + mSkipReturnToParent = intent.getBooleanExtra(EXTRA_SKIP_RETURN_TO_PARENT, false); + + Log.d(TAG, "parentalOptionsRequired: " + mParentalOptionsRequired + + ", skipReturnToParent: " + mSkipReturnToParent); if (mParentalOptionsRequired && mParentalOptions == null) { mParentalConsentHelper = new ParentalConsentHelper( @@ -376,7 +384,12 @@ public class BiometricEnrollActivity extends InstrumentedActivity { private void finishOrLaunchHandToParent(int resultCode) { if (mParentalOptionsRequired) { - launchHandoffToParent(); + if (!mSkipReturnToParent) { + launchHandoffToParent(); + } else { + setResult(RESULT_OK, newResultIntent()); + finish(); + } } else { setResult(resultCode); finish();