Rewire BiometricEnrollActivity to setup pages
When running in setup flow: - If fingerprint enrollment is desired, go to SetupFingerprintEnrollIntroduction - Makes sure WizardManagerHelper.copyWizardManagerExtras is called to propagate the extras from the incoming intent, propagating extras like whether we are in initial / deferred setup flow, theme, etc. - Forward the result code in BiometricEnrollActivity using FLAG_ACTIVITY_FORWARD_RESULT Bug: 120797018 Test: Manual Change-Id: Ibc0ecc035141d62339f5f664346ed108570e0905
This commit is contained in:
@@ -16,8 +16,6 @@
|
||||
|
||||
package com.android.settings.biometrics;
|
||||
|
||||
import static com.android.settings.Utils.SETTINGS_PACKAGE_NAME;
|
||||
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
@@ -25,8 +23,11 @@ import android.os.Bundle;
|
||||
|
||||
import com.android.settings.biometrics.face.FaceEnrollIntroduction;
|
||||
import com.android.settings.biometrics.fingerprint.FingerprintEnrollIntroduction;
|
||||
import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollIntroduction;
|
||||
import com.android.settings.core.InstrumentedActivity;
|
||||
|
||||
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||
|
||||
/**
|
||||
* Trampoline activity launched by the {@code android.settings.BIOMETRIC_ENROLL} action which
|
||||
* shows the user an appropriate enrollment flow depending on the device's biometric hardware.
|
||||
@@ -40,20 +41,38 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
final PackageManager pm = getApplicationContext().getPackageManager();
|
||||
final Intent intent = new Intent();
|
||||
Intent intent;
|
||||
|
||||
// This logic may have to be modified on devices with multiple biometrics.
|
||||
if (pm.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
|
||||
intent.setClassName(SETTINGS_PACKAGE_NAME,
|
||||
FingerprintEnrollIntroduction.class.getName());
|
||||
intent = getFingerprintEnrollIntent();
|
||||
} else if (pm.hasSystemFeature(PackageManager.FEATURE_FACE)) {
|
||||
intent.setClassName(SETTINGS_PACKAGE_NAME, FaceEnrollIntroduction.class.getName());
|
||||
intent = getFaceEnrollIntent();
|
||||
} else {
|
||||
intent = new Intent();
|
||||
}
|
||||
|
||||
intent.setFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
|
||||
startActivity(intent);
|
||||
finish();
|
||||
}
|
||||
|
||||
private Intent getFingerprintEnrollIntent() {
|
||||
if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
|
||||
Intent intent = new Intent(this, SetupFingerprintEnrollIntroduction.class);
|
||||
WizardManagerHelper.copyWizardManagerExtras(getIntent(), intent);
|
||||
return intent;
|
||||
} else {
|
||||
return new Intent(this, FingerprintEnrollIntroduction.class);
|
||||
}
|
||||
}
|
||||
|
||||
private Intent getFaceEnrollIntent() {
|
||||
Intent intent = new Intent(this, FaceEnrollIntroduction.class);
|
||||
WizardManagerHelper.copyWizardManagerExtras(getIntent(), intent);
|
||||
return intent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMetricsCategory() {
|
||||
return SettingsEnums.BIOMETRIC_ENROLL_ACTIVITY;
|
||||
|
@@ -27,8 +27,10 @@ import android.widget.TextView;
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.password.ChooseLockGeneric;
|
||||
import com.android.settings.password.ChooseLockSettingsHelper;
|
||||
import com.android.settings.password.SetupChooseLockGeneric;
|
||||
|
||||
import com.google.android.setupcompat.template.FooterButton;
|
||||
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||
import com.google.android.setupdesign.span.LinkSpan;
|
||||
|
||||
/**
|
||||
@@ -199,7 +201,13 @@ public abstract class BiometricEnrollIntroduction extends BiometricEnrollBase
|
||||
}
|
||||
|
||||
protected Intent getChooseLockIntent() {
|
||||
return new Intent(this, ChooseLockGeneric.class);
|
||||
if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
|
||||
Intent intent = new Intent(this, SetupChooseLockGeneric.class);
|
||||
WizardManagerHelper.copyWizardManagerExtras(getIntent(), intent);
|
||||
return intent;
|
||||
} else {
|
||||
return new Intent(this, ChooseLockGeneric.class);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -36,6 +36,7 @@ import com.android.settingslib.RestrictedLockUtilsInternal;
|
||||
|
||||
import com.google.android.setupcompat.template.FooterBarMixin;
|
||||
import com.google.android.setupcompat.template.FooterButton;
|
||||
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||
import com.google.android.setupdesign.span.LinkSpan;
|
||||
|
||||
public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
|
||||
@@ -166,6 +167,7 @@ public class FaceEnrollIntroduction extends BiometricEnrollIntroduction {
|
||||
intent.setClass(this, FaceEnrollEnrolling.class);
|
||||
}
|
||||
intent.putExtra(EXTRA_KEY_REQUIRE_DIVERSITY, mSwitchDiversity.isChecked());
|
||||
WizardManagerHelper.copyWizardManagerExtras(getIntent(), intent);
|
||||
return intent;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user