Show a dialog preventing face enrollment in split mode.

Test: atest CombinedBiometricProfileSettingsTest
Test: atest FingerprintSettingsFragmentTest
Test: manaul test- go to split screen mode and try to enroll
face
Bug: 276938441

Change-Id: I45e859b453700aa79f7774fb5deda81b1f30e5a5
This commit is contained in:
Hao Dong
2023-04-04 19:50:26 +00:00
parent 8930e6ea87
commit 64277a23bb
9 changed files with 314 additions and 146 deletions

View File

@@ -18,6 +18,7 @@ package com.android.settings.biometrics.face;
import static android.app.Activity.RESULT_OK;
import static android.app.admin.DevicePolicyResources.Strings.Settings.FACE_SETTINGS_FOR_WORK_TITLE;
import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FACE;
import static com.android.settings.biometrics.BiometricEnrollBase.CONFIRM_REQUEST;
import static com.android.settings.biometrics.BiometricEnrollBase.ENROLL_REQUEST;
@@ -42,6 +43,7 @@ import com.android.settings.SettingsActivity;
import com.android.settings.Utils;
import com.android.settings.biometrics.BiometricEnrollBase;
import com.android.settings.biometrics.BiometricUtils;
import com.android.settings.biometrics.BiometricsSplitScreenDialog;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.overlay.FeatureFactory;
import com.android.settings.password.ChooseLockSettingsHelper;
@@ -101,8 +103,25 @@ public class FaceSettings extends DashboardFragment {
mEnrollButton.setVisible(true);
};
private final FaceSettingsEnrollButtonPreferenceController.Listener mEnrollListener = intent ->
startActivityForResult(intent, ENROLL_REQUEST);
private final FaceSettingsEnrollButtonPreferenceController.Listener mEnrollListener =
new FaceSettingsEnrollButtonPreferenceController.Listener() {
@Override
public boolean checkInMultiWindowMode() {
if (!getActivity().isInMultiWindowMode()) {
return false;
}
// If it's in split mode, show the error dialog.
BiometricsSplitScreenDialog.newInstance(TYPE_FACE).show(
getActivity().getSupportFragmentManager(),
BiometricsSplitScreenDialog.class.getName());
return true;
}
@Override
public void onStartEnrolling(Intent intent) {
FaceSettings.this.startActivityForResult(intent, ENROLL_REQUEST);
}
};
/**
* @param context
@@ -332,7 +351,6 @@ public class FaceSettings extends DashboardFragment {
} else if (controller instanceof FaceSettingsEnrollButtonPreferenceController) {
mEnrollController = (FaceSettingsEnrollButtonPreferenceController) controller;
mEnrollController.setListener(mEnrollListener);
mEnrollController.setActivity((SettingsActivity) getActivity());
}
}