Merge "Fixed unicorn multi-enrollment flow." into tm-d1-dev am: 431542dddc am: e30a71787e am: 54b7ac755a
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/19093051
Change-Id: I8a39ef5bcd58b5d525e5933a95bbbf28ae1a30c7
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/com/android/settings/biometrics/BiometricEnrollActivity.java b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
index dda3997..e682934 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollActivity.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
@@ -333,6 +333,8 @@
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
+ Log.d(TAG,
+ "onActivityResult(requestCode=" + requestCode + ", resultCode=" + resultCode + ")");
// single enrollment is handled entirely by the launched activity
// this handles multi enroll or if parental consent is required
if (mParentalConsentHelper != null) {
diff --git a/src/com/android/settings/biometrics/BiometricEnrollBase.java b/src/com/android/settings/biometrics/BiometricEnrollBase.java
index ad9b64e..eea1bad 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollBase.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollBase.java
@@ -184,7 +184,8 @@
@Override
protected void onStop() {
super.onStop();
- if (!isChangingConfigurations() && shouldFinishWhenBackgrounded()) {
+ if (!isChangingConfigurations() && shouldFinishWhenBackgrounded()
+ && !BiometricUtils.isAnyMultiBiometricFlow(this)) {
setResult(RESULT_TIMEOUT);
finish();
}
diff --git a/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java b/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
index 62114d2..acfe5a1 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollIntroduction.java
@@ -24,6 +24,7 @@
import android.os.Bundle;
import android.os.UserHandle;
import android.os.UserManager;
+import android.util.Log;
import android.view.View;
import android.widget.TextView;
@@ -302,7 +303,8 @@
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- // TODO(b/229924331): Add tests for the enrollment flows.
+ Log.d(TAG,
+ "onActivityResult(requestCode=" + requestCode + ", resultCode=" + resultCode + ")");
final boolean cameFromMultiBioFpAuthAddAnother =
requestCode == BiometricUtils.REQUEST_ADD_ANOTHER
&& BiometricUtils.isMultiBiometricFingerprintEnrollmentFlow(this);
diff --git a/src/com/android/settings/biometrics/BiometricUtils.java b/src/com/android/settings/biometrics/BiometricUtils.java
index 7e5a22f..f395aca 100644
--- a/src/com/android/settings/biometrics/BiometricUtils.java
+++ b/src/com/android/settings/biometrics/BiometricUtils.java
@@ -240,7 +240,6 @@
return activity.getIntent().hasExtra(MultiBiometricEnrollHelper.EXTRA_ENROLL_AFTER_FACE);
}
-
/**
* Used for checking if a multi-biometric enrollment flowstarts with Fingerprint
* and ends with Face.
@@ -254,6 +253,18 @@
MultiBiometricEnrollHelper.EXTRA_ENROLL_AFTER_FINGERPRINT);
}
+ /**
+ * Used to check if the activity is a multi biometric flow activity.
+ *
+ * @param activity Activity to check
+ * @return True if the activity is going through a multi-biometric enrollment flow, that starts
+ * with Fingerprint.
+ */
+ public static boolean isAnyMultiBiometricFlow(@NonNull Activity activity) {
+ return isMultiBiometricFaceEnrollmentFlow(activity)
+ || isMultiBiometricFingerprintEnrollmentFlow(activity);
+ }
+
public static void copyMultiBiometricExtras(@NonNull Intent fromIntent,
@NonNull Intent toIntent) {
PendingIntent pendingIntent = (PendingIntent) fromIntent.getExtra(
diff --git a/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java b/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java
index 302c9e1..3a61d5e 100644
--- a/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/BiometricsEnrollEnrolling.java
@@ -74,7 +74,8 @@
getSupportFragmentManager()
.beginTransaction().remove(mSidecar).commitAllowingStateLoss();
}
- if (!WizardManagerHelper.isAnySetupWizard(getIntent())) {
+ if (!WizardManagerHelper.isAnySetupWizard(getIntent())
+ && !BiometricUtils.isAnyMultiBiometricFlow(this)) {
setResult(RESULT_TIMEOUT);
}
finish();
diff --git a/src/com/android/settings/biometrics/ParentalConsentHelper.java b/src/com/android/settings/biometrics/ParentalConsentHelper.java
index 40ff8ea..f39f876 100644
--- a/src/com/android/settings/biometrics/ParentalConsentHelper.java
+++ b/src/com/android/settings/biometrics/ParentalConsentHelper.java
@@ -139,12 +139,12 @@
@Nullable
private Intent getNextConsentIntent(@NonNull Context context) {
- if (mRequireFace && mConsentFace == null) {
- return new Intent(context, FaceEnrollParentalConsent.class);
- }
if (mRequireFingerprint && mConsentFingerprint == null) {
return new Intent(context, FingerprintEnrollParentalConsent.class);
}
+ if (mRequireFace && mConsentFace == null) {
+ return new Intent(context, FaceEnrollParentalConsent.class);
+ }
return null;
}
diff --git a/src/com/android/settings/biometrics/face/FaceEnrollParentalConsent.java b/src/com/android/settings/biometrics/face/FaceEnrollParentalConsent.java
index 0f384c2..a3a745d 100644
--- a/src/com/android/settings/biometrics/face/FaceEnrollParentalConsent.java
+++ b/src/com/android/settings/biometrics/face/FaceEnrollParentalConsent.java
@@ -53,11 +53,7 @@
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- final String text =
- getText(R.string.security_settings_face_enroll_introduction_consent_message_0)
- + "\n\n"
- + getText(R.string.security_settings_face_enroll_introduction_consent_message);
- setDescriptionText(text);
+ setDescriptionText(R.string.security_settings_face_enroll_introduction_consent_message_0);
}
@Override
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
index 387f216..627a514 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
@@ -21,6 +21,7 @@
import android.hardware.fingerprint.FingerprintManager;
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
import android.os.Bundle;
+import android.util.Log;
import android.view.OrientationEventListener;
import android.view.Surface;
import android.view.View;
@@ -48,6 +49,9 @@
public class FingerprintEnrollFindSensor extends BiometricEnrollBase implements
BiometricEnrollSidecar.Listener {
+
+ private static final String TAG = "FingerprintEnrollFindSensor";
+
@Nullable
private FingerprintFindSensorAnimation mAnimation;
@@ -294,6 +298,8 @@
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ Log.d(TAG,
+ "onActivityResult(requestCode=" + requestCode + ", resultCode=" + resultCode + ")");
boolean enrolledFingerprint = false;
if (data != null) {
enrolledFingerprint = data.getBooleanExtra(EXTRA_FINISHED_ENROLL_FINGERPRINT, false);
diff --git a/tests/unit/src/com/android/settings/biometrics/ParentalConsentHelperTest.java b/tests/unit/src/com/android/settings/biometrics/ParentalConsentHelperTest.java
index abb5355..175c2cf 100644
--- a/tests/unit/src/com/android/settings/biometrics/ParentalConsentHelperTest.java
+++ b/tests/unit/src/com/android/settings/biometrics/ParentalConsentHelperTest.java
@@ -82,7 +82,7 @@
}
@Test
- public void testLaunchNext_face_and_fingerprint_all_consent() {
+ public void testLaunchNext__fingerprint_all_consent() {
testLaunchNext(
true /* requireFace */, true /* grantFace */,
true /* requireFingerprint */, true /* grantFace */,
@@ -158,13 +158,13 @@
boolean requireFingerprint, boolean grantFingerprint,
long gkpw) {
final List<Pair<String, Boolean>> expectedLaunches = new ArrayList<>();
- if (requireFace) {
- expectedLaunches.add(new Pair(FaceEnrollParentalConsent.class.getName(), grantFace));
- }
if (requireFingerprint) {
expectedLaunches.add(
new Pair(FingerprintEnrollParentalConsent.class.getName(), grantFingerprint));
}
+ if (requireFace) {
+ expectedLaunches.add(new Pair(FaceEnrollParentalConsent.class.getName(), grantFace));
+ }
// initial consent status
final ParentalConsentHelper helper = new ParentalConsentHelper(gkpw);