blob: d8cb123d85e667946e980eee82f4fe82a6b42eed [file] [log] [blame]
/*
* Copyright (C) 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License
*/
package com.android.settings.biometrics;
import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_FINISHED;
import static com.android.settings.biometrics.BiometricEnrollBase.RESULT_TIMEOUT;
import android.app.Activity;
import android.app.Dialog;
import android.content.DialogInterface;
import android.hardware.biometrics.BiometricConstants;
import android.os.Bundle;
import androidx.appcompat.app.AlertDialog;
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
/**
* Abstract dialog, shown when an error occurs during biometric enrollment.
*/
public abstract class BiometricErrorDialog extends InstrumentedDialogFragment {
public static final String KEY_ERROR_MSG = "error_msg";
public static final String KEY_ERROR_ID = "error_id";
public abstract int getTitleResId();
public abstract int getOkButtonTextResId();
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
CharSequence errorString = getArguments().getCharSequence(KEY_ERROR_MSG);
final int errMsgId = getArguments().getInt(KEY_ERROR_ID);
builder.setTitle(getTitleResId())
.setMessage(errorString)
.setCancelable(false)
.setPositiveButton(getOkButtonTextResId(),
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
boolean wasTimeout =
errMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT;
Activity activity = getActivity();
activity.setResult(wasTimeout ?
RESULT_TIMEOUT : RESULT_FINISHED);
activity.finish();
}
});
AlertDialog dialog = builder.create();
dialog.setCanceledOnTouchOutside(false);
return dialog;
}
}