Merge "[BiometricsV2] Refine fingerprint activities"

This commit is contained in:
Milton Wu
2023-05-26 04:17:27 +00:00
committed by Android (Google) Code Review
10 changed files with 260 additions and 57 deletions

View File

@@ -251,6 +251,7 @@ public class ActivityEmbeddingRulesController {
addActivityFilter(activityFilters, searchIntent);
}
addActivityFilter(activityFilters, FingerprintEnrollmentActivity.class);
addActivityFilter(activityFilters, FingerprintEnrollmentActivity.InternalActivity.class);
addActivityFilter(activityFilters, FingerprintEnrollIntroduction.class);
addActivityFilter(activityFilters, FingerprintEnrollIntroductionInternal.class);
addActivityFilter(activityFilters, FingerprintEnrollEnrolling.class);

View File

@@ -16,6 +16,8 @@
package com.android.settings.biometrics;
import static android.util.FeatureFlagUtils.SETTINGS_BIOMETRICS2_ENROLLMENT;
import android.annotation.IntDef;
import android.app.Activity;
import android.app.PendingIntent;
@@ -249,20 +251,22 @@ public class BiometricUtils {
*/
public static Intent getFingerprintFindSensorIntent(@NonNull Context context,
@NonNull Intent activityIntent) {
if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_BIOMETRICS2_ENROLLMENT)) {
final Intent intent = new Intent(context, FingerprintEnrollmentActivity.class);
final boolean isSuw = WizardManagerHelper.isAnySetupWizard(activityIntent);
final Intent intent;
if (FeatureFlagUtils.isEnabled(context, SETTINGS_BIOMETRICS2_ENROLLMENT)) {
intent = new Intent(context, isSuw
? FingerprintEnrollmentActivity.SetupActivity.class
: FingerprintEnrollmentActivity.class);
intent.putExtra(BiometricEnrollActivity.EXTRA_SKIP_INTRO, true);
if (WizardManagerHelper.isAnySetupWizard(activityIntent)) {
SetupWizardUtils.copySetupExtras(activityIntent, intent);
}
return intent;
} else if (WizardManagerHelper.isAnySetupWizard(activityIntent)) {
Intent intent = new Intent(context, SetupFingerprintEnrollFindSensor.class);
SetupWizardUtils.copySetupExtras(activityIntent, intent);
return intent;
} else {
return new Intent(context, FingerprintEnrollFindSensor.class);
intent = new Intent(context, isSuw
? SetupFingerprintEnrollFindSensor.class
: FingerprintEnrollFindSensor.class);
}
if (isSuw) {
SetupWizardUtils.copySetupExtras(activityIntent, intent);
}
return intent;
}
/**
@@ -272,19 +276,21 @@ public class BiometricUtils {
*/
public static Intent getFingerprintIntroIntent(@NonNull Context context,
@NonNull Intent activityIntent) {
if (FeatureFlagUtils.isEnabled(context, FeatureFlagUtils.SETTINGS_BIOMETRICS2_ENROLLMENT)) {
final Intent intent = new Intent(context, FingerprintEnrollmentActivity.class);
if (WizardManagerHelper.isAnySetupWizard(activityIntent)) {
WizardManagerHelper.copyWizardManagerExtras(activityIntent, intent);
}
return intent;
} else if (WizardManagerHelper.isAnySetupWizard(activityIntent)) {
Intent intent = new Intent(context, SetupFingerprintEnrollIntroduction.class);
WizardManagerHelper.copyWizardManagerExtras(activityIntent, intent);
return intent;
final boolean isSuw = WizardManagerHelper.isAnySetupWizard(activityIntent);
final Intent intent;
if (FeatureFlagUtils.isEnabled(context, SETTINGS_BIOMETRICS2_ENROLLMENT)) {
intent = new Intent(context, isSuw
? FingerprintEnrollmentActivity.SetupActivity.class
: FingerprintEnrollmentActivity.class);
} else {
return new Intent(context, FingerprintEnrollIntroduction.class);
intent = new Intent(context, isSuw
? SetupFingerprintEnrollIntroduction.class
: FingerprintEnrollIntroduction.class);
}
if (isSuw) {
WizardManagerHelper.copyWizardManagerExtras(activityIntent, intent);
}
return intent;
}
/**

View File

@@ -751,7 +751,7 @@ public class FingerprintSettings extends SubSettings {
if (FeatureFlagUtils.isEnabled(getContext(),
FeatureFlagUtils.SETTINGS_BIOMETRICS2_ENROLLMENT)) {
intent.setClassName(SETTINGS_PACKAGE_NAME,
FingerprintEnrollmentActivity.class.getName());
FingerprintEnrollmentActivity.InternalActivity.class.getName());
intent.putExtra(EnrollmentRequest.EXTRA_SKIP_FIND_SENSOR, true);
} else {
intent.setClassName(SETTINGS_PACKAGE_NAME,
@@ -1025,7 +1025,7 @@ public class FingerprintSettings extends SubSettings {
intent.setClassName(SETTINGS_PACKAGE_NAME,
FeatureFlagUtils.isEnabled(getActivity(),
FeatureFlagUtils.SETTINGS_BIOMETRICS2_ENROLLMENT)
? FingerprintEnrollmentActivity.class.getName()
? FingerprintEnrollmentActivity.InternalActivity.class.getName()
: FingerprintEnrollIntroductionInternal.class.getName()
);

View File

@@ -16,8 +16,6 @@
package com.android.settings.biometrics2.ui.model;
import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_FROM_SETTINGS_SUMMARY;
import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW;
import android.content.Context;
@@ -47,19 +45,20 @@ public final class EnrollmentRequest {
private final boolean mIsSuw;
private final boolean mIsAfterSuwOrSuwSuggestedAction;
private final boolean mIsFromSettingsSummery;
private final boolean mIsSkipIntro;
private final boolean mIsSkipFindSensor;
private final int mTheme;
private final Bundle mSuwExtras;
public EnrollmentRequest(@NonNull Intent intent, @NonNull Context context) {
mIsSuw = WizardManagerHelper.isAnySetupWizard(intent);
mIsAfterSuwOrSuwSuggestedAction = WizardManagerHelper.isDeferredSetupWizard(intent)
public EnrollmentRequest(@NonNull Intent intent, @NonNull Context context,
boolean isSetupActivity) {
// Only allow mIsSuw to be enabled through SetupActivity for security reason
mIsSuw = isSetupActivity && WizardManagerHelper.isAnySetupWizard(intent);
mIsAfterSuwOrSuwSuggestedAction = isSetupActivity
&& (WizardManagerHelper.isDeferredSetupWizard(intent)
|| WizardManagerHelper.isPortalSetupWizard(intent)
|| intent.getBooleanExtra(EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW, false);
|| intent.getBooleanExtra(EXTRA_IS_SUW_SUGGESTED_ACTION_FLOW, false));
mSuwExtras = getSuwExtras(mIsSuw, intent);
mIsFromSettingsSummery = intent.getBooleanExtra(EXTRA_FROM_SETTINGS_SUMMARY, false);
mIsSkipIntro = intent.getBooleanExtra(BiometricEnrollActivity.EXTRA_SKIP_INTRO, false);
mIsSkipFindSensor = intent.getBooleanExtra(EXTRA_SKIP_FIND_SENSOR, false);
mTheme = SetupWizardUtils.getTheme(context, intent);
@@ -73,10 +72,6 @@ public final class EnrollmentRequest {
return mIsAfterSuwOrSuwSuggestedAction;
}
public boolean isFromSettingsSummery() {
return mIsFromSettingsSummery;
}
public boolean isSkipIntro() {
return mIsSkipIntro;
}
@@ -101,7 +96,6 @@ public final class EnrollmentRequest {
public String toString() {
return getClass().getSimpleName() + ":{isSuw:" + mIsSuw
+ ", isAfterSuwOrSuwSuggestedAction:" + mIsAfterSuwOrSuwSuggestedAction
+ ", isFromSettingsSummery:" + mIsFromSettingsSummery
+ "}";
}

View File

@@ -97,6 +97,16 @@ import com.google.android.setupdesign.util.ThemeHelper;
*/
public class FingerprintEnrollmentActivity extends FragmentActivity {
/**
* Setupwizard activity
*/
public static class SetupActivity extends FingerprintEnrollmentActivity {}
/**
* Internal activity for FingerprintSettings
*/
public static class InternalActivity extends FingerprintEnrollmentActivity {}
private static final boolean DEBUG = false;
private static final String TAG = "FingerprintEnrollmentActivity";
@@ -583,8 +593,8 @@ public class FingerprintEnrollmentActivity extends FragmentActivity {
.getBiometricsRepositoryProvider().getFingerprintRepository(application);
ret.set(CHALLENGE_GENERATOR_KEY, new FingerprintChallengeGenerator(repository));
ret.set(ENROLLMENT_REQUEST_KEY, new EnrollmentRequest(getIntent(),
getApplicationContext()));
ret.set(ENROLLMENT_REQUEST_KEY, new EnrollmentRequest(getIntent(), getApplicationContext(),
this instanceof SetupActivity));
Bundle extras = getIntent().getExtras();
final CredentialModel credentialModel = new CredentialModel(extras,