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

@@ -18,6 +18,8 @@ package com.android.settings.biometrics;
import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FACE;
import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_SKIP;
import android.app.Dialog;
import android.app.settings.SettingsEnums;
import android.content.DialogInterface;
@@ -34,23 +36,33 @@ import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
*/
public class BiometricsSplitScreenDialog extends InstrumentedDialogFragment {
private static final String KEY_BIOMETRICS_MODALITY = "biometrics_modality";
private static final String KEU_DESTROY_ACTIVITY = "destroy_activity";
@BiometricAuthenticator.Modality
private int mBiometricsModality;
private boolean mDestroyActivity;
/** Returns the new instance of the class */
/**
* Returns the new instance of the class
* @param biometricsModality Biometric modality.
* @param destroyActivity Whether to destroy the activity
* @return the current {@link BiometricsSplitScreenDialog}
*/
public static BiometricsSplitScreenDialog newInstance(
@BiometricAuthenticator.Modality int biometricsModality) {
@BiometricAuthenticator.Modality int biometricsModality, boolean destroyActivity) {
final BiometricsSplitScreenDialog dialog = new BiometricsSplitScreenDialog();
final Bundle args = new Bundle();
args.putInt(KEY_BIOMETRICS_MODALITY, biometricsModality);
args.putBoolean(KEU_DESTROY_ACTIVITY, destroyActivity);
dialog.setArguments(args);
dialog.setCancelable(false);
return dialog;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
mBiometricsModality = getArguments().getInt(KEY_BIOMETRICS_MODALITY);
mDestroyActivity = getArguments().getBoolean(KEU_DESTROY_ACTIVITY);
int titleId;
int messageId;
switch (mBiometricsModality) {
@@ -65,9 +77,16 @@ public class BiometricsSplitScreenDialog extends InstrumentedDialogFragment {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(titleId)
.setMessage(messageId)
.setCancelable(false)
.setPositiveButton(
R.string.biometric_settings_add_biometrics_in_split_mode_ok,
(DialogInterface.OnClickListener) (dialog, which) -> dialog.dismiss());
(DialogInterface.OnClickListener) (dialog, which) -> {
dialog.dismiss();
if (mDestroyActivity) {
getActivity().setResult(RESULT_SKIP);
getActivity().finish();
}
});
return builder.create();
}