Show split screen dialog on the introduction and enrolling page.

Revert ag/22361082 and ag/22460413, show the split screen dialog on
the introduction and enrolling page, instead of relying on the callers
to show the dialog.

Test: atest BiometricsSplitScreenDialogTest
Test: atest FaceEnrollIntroductionTest
Test: atest SetupFingerprintEnrollIntroductionTest
Bug: 299573056

Change-Id: Ieb106a4a623ad5ca0e6eb1633413df75767bef52
This commit is contained in:
Hao Dong
2024-02-01 02:00:14 +00:00
parent 911d85a9fd
commit c9aaa73b51
17 changed files with 294 additions and 271 deletions

View File

@@ -16,8 +16,6 @@
package com.android.settings.biometrics.combination;
import static android.app.Activity.RESULT_OK;
import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FACE;
import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FINGERPRINT;
import static com.android.settings.password.ChooseLockPattern.RESULT_FINISHED;
@@ -48,12 +46,10 @@ import com.android.settings.Utils;
import com.android.settings.biometrics.BiometricEnrollBase;
import com.android.settings.biometrics.BiometricStatusPreferenceController;
import com.android.settings.biometrics.BiometricUtils;
import com.android.settings.biometrics.BiometricsSplitScreenDialog;
import com.android.settings.core.SettingsBaseActivity;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.password.ChooseLockGeneric;
import com.android.settings.password.ChooseLockSettingsHelper;
import com.android.settingslib.activityembedding.ActivityEmbeddingUtils;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.transition.SettingsTransitionHelper;
@@ -167,18 +163,6 @@ public abstract class BiometricsSettingsBase extends DashboardFragment {
// since FingerprintSettings and FaceSettings revoke the challenge when finishing.
if (getFacePreferenceKey().equals(key)) {
mDoNotFinishActivity = true;
// If it's split mode and there is no enrolled face, show the dialog. (if there is
// enrolled face, FaceSettingsEnrollButtonPreferenceController#onClick will handle
// the dialog)
if (getActivity().isInMultiWindowMode() && !ActivityEmbeddingUtils.isActivityEmbedded(
getActivity()) && !mFaceManager.hasEnrolledTemplates(mUserId)) {
BiometricsSplitScreenDialog.newInstance(TYPE_FACE).show(
getActivity().getSupportFragmentManager(),
BiometricsSplitScreenDialog.class.getName());
return true;
}
mFaceManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
final Activity activity = getActivity();
if (activity == null || activity.isFinishing()) {
@@ -209,18 +193,6 @@ public abstract class BiometricsSettingsBase extends DashboardFragment {
return true;
} else if (getFingerprintPreferenceKey().equals(key)) {
mDoNotFinishActivity = true;
// If it's split mode and there is no enrolled fingerprint, show the dialog. (if
// there is enrolled fingerprint, FingerprintSettingsFragment#onPreferenceTreeClick
// will handle the dialog)
if (getActivity().isInMultiWindowMode() && !ActivityEmbeddingUtils.isActivityEmbedded(
getActivity()) && !mFingerprintManager.hasEnrolledFingerprints(mUserId)) {
BiometricsSplitScreenDialog.newInstance(TYPE_FINGERPRINT).show(
getActivity().getSupportFragmentManager(),
BiometricsSplitScreenDialog.class.getName());
return true;
}
mFingerprintManager.generateChallenge(mUserId, (sensorId, userId, challenge) -> {
final Activity activity = getActivity();
if (activity == null || activity.isFinishing()) {