1 /* 2 * Copyright (C) 2023 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.settings.biometrics; 18 19 import static android.hardware.biometrics.BiometricAuthenticator.TYPE_FACE; 20 21 import android.app.Dialog; 22 import android.app.settings.SettingsEnums; 23 import android.content.DialogInterface; 24 import android.hardware.biometrics.BiometricAuthenticator; 25 import android.os.Bundle; 26 27 import androidx.appcompat.app.AlertDialog; 28 29 import com.android.settings.R; 30 import com.android.settings.core.instrumentation.InstrumentedDialogFragment; 31 32 /** 33 * This alert dialog shows when fingerprint is being added in multi window mode. 34 */ 35 public class BiometricsSplitScreenDialog extends InstrumentedDialogFragment { 36 private static final String KEY_BIOMETRICS_MODALITY = "biometrics_modality"; 37 38 @BiometricAuthenticator.Modality 39 private int mBiometricsModality; 40 41 /** Returns the new instance of the class */ newInstance( @iometricAuthenticator.Modality int biometricsModality)42 public static BiometricsSplitScreenDialog newInstance( 43 @BiometricAuthenticator.Modality int biometricsModality) { 44 final BiometricsSplitScreenDialog dialog = new BiometricsSplitScreenDialog(); 45 final Bundle args = new Bundle(); 46 args.putInt(KEY_BIOMETRICS_MODALITY, biometricsModality); 47 dialog.setArguments(args); 48 return dialog; 49 } 50 51 @Override onCreateDialog(Bundle savedInstanceState)52 public Dialog onCreateDialog(Bundle savedInstanceState) { 53 mBiometricsModality = getArguments().getInt(KEY_BIOMETRICS_MODALITY); 54 int titleId; 55 int messageId; 56 switch (mBiometricsModality) { 57 case TYPE_FACE: 58 titleId = R.string.biometric_settings_add_face_in_split_mode_title; 59 messageId = R.string.biometric_settings_add_face_in_split_mode_message; 60 break; 61 default: 62 titleId = R.string.biometric_settings_add_fingerprint_in_split_mode_title; 63 messageId = R.string.biometric_settings_add_fingerprint_in_split_mode_message; 64 } 65 AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 66 builder.setTitle(titleId) 67 .setMessage(messageId) 68 .setPositiveButton( 69 R.string.biometric_settings_add_biometrics_in_split_mode_ok, 70 (DialogInterface.OnClickListener) (dialog, which) -> dialog.dismiss()); 71 return builder.create(); 72 } 73 74 @Override getMetricsCategory()75 public int getMetricsCategory() { 76 switch (mBiometricsModality) { 77 case TYPE_FACE: 78 return SettingsEnums.DIALOG_ADD_FACE_ERROR_IN_SPLIT_MODE; 79 default: 80 return SettingsEnums.DIALOG_ADD_FINGERPRINT_ERROR_IN_SPLIT_MODE; 81 } 82 } 83 } 84