[BiometricsV2] Remove "Try again" button from errorDialog
Remove "Try again" button from fingerprint enrolling error dialog for biometrics v2. Test: Manual (Enable biometrics v2, Start enrollment and don't complete it for 10 minutes; observe the dialog) Test: atest FingerprintEnrollEnrollingViewModelTest FingerprintEnrollmentActivityTest Bug: 280546173 Change-Id: I844786719a41b1a3d0e86ab32b74ab9b5aeaa0a1
This commit is contained in:
@@ -1,95 +0,0 @@
|
||||
/*
|
||||
* Copyright 2021 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.biometrics2.ui.view;
|
||||
|
||||
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.ErrorDialogData;
|
||||
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_RESTART;
|
||||
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH;
|
||||
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT;
|
||||
|
||||
import android.app.Dialog;
|
||||
import android.app.settings.SettingsEnums;
|
||||
import android.content.Context;
|
||||
import android.hardware.biometrics.BiometricConstants;
|
||||
import android.os.Bundle;
|
||||
|
||||
import androidx.appcompat.app.AlertDialog;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import com.android.settings.R;
|
||||
import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel;
|
||||
import com.android.settings.core.instrumentation.InstrumentedDialogFragment;
|
||||
|
||||
/**
|
||||
* Fingerprint error dialog, will be shown when an error occurs during fingerprint enrollment.
|
||||
*/
|
||||
public class FingerprintEnrollEnrollingErrorDialog extends InstrumentedDialogFragment {
|
||||
|
||||
private FingerprintEnrollEnrollingViewModel mViewModel;
|
||||
|
||||
@Override
|
||||
public Dialog onCreateDialog(Bundle savedInstanceState) {
|
||||
final AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
|
||||
final ErrorDialogData data = mViewModel.getErrorDialogLiveData().getValue();
|
||||
final int errMsgId = data.getErrMsgId();
|
||||
final boolean canAssumeUdfps = mViewModel.canAssumeUdfps();
|
||||
final boolean wasTimeout = errMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT;
|
||||
|
||||
builder.setTitle(data.getErrTitle())
|
||||
.setMessage(data.getErrMsg())
|
||||
.setCancelable(false);
|
||||
if (wasTimeout && canAssumeUdfps) {
|
||||
builder.setPositiveButton(
|
||||
R.string.security_settings_fingerprint_enroll_dialog_try_again,
|
||||
(dialog, which) -> {
|
||||
dialog.dismiss();
|
||||
mViewModel.onErrorDialogAction(FINGERPRINT_ERROR_DIALOG_ACTION_RESTART);
|
||||
});
|
||||
builder.setNegativeButton(
|
||||
R.string.security_settings_fingerprint_enroll_dialog_ok,
|
||||
(dialog, which) -> {
|
||||
dialog.dismiss();
|
||||
mViewModel.onErrorDialogAction(
|
||||
FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT);
|
||||
});
|
||||
} else {
|
||||
builder.setPositiveButton(
|
||||
R.string.security_settings_fingerprint_enroll_dialog_ok,
|
||||
(dialog, which) -> {
|
||||
dialog.dismiss();
|
||||
mViewModel.onErrorDialogAction(wasTimeout
|
||||
? FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
|
||||
: FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH);
|
||||
});
|
||||
}
|
||||
final AlertDialog dialog = builder.create();
|
||||
dialog.setCanceledOnTouchOutside(false);
|
||||
return dialog;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getMetricsCategory() {
|
||||
return SettingsEnums.DIALOG_FINGERPINT_ERROR;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onAttach(Context context) {
|
||||
mViewModel = new ViewModelProvider(getActivity()).get(
|
||||
FingerprintEnrollEnrollingViewModel.class);
|
||||
super.onAttach(context);
|
||||
}
|
||||
}
|
@@ -0,0 +1,63 @@
|
||||
/*
|
||||
* Copyright 2023 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.biometrics2.ui.view
|
||||
|
||||
import android.app.Dialog
|
||||
import android.content.Context
|
||||
import android.content.DialogInterface
|
||||
import android.hardware.biometrics.BiometricConstants
|
||||
import android.os.Bundle
|
||||
import androidx.appcompat.app.AlertDialog
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import com.android.settings.R
|
||||
import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel
|
||||
import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH
|
||||
import com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
|
||||
|
||||
/**
|
||||
* Fingerprint error dialog, will be shown when an error occurs during fingerprint enrollment.
|
||||
*/
|
||||
class FingerprintEnrollEnrollingErrorDialog : DialogFragment() {
|
||||
|
||||
private var mViewModel: FingerprintEnrollEnrollingViewModel? = null
|
||||
|
||||
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
|
||||
val value = mViewModel!!.errorDialogLiveData.value!!
|
||||
return AlertDialog.Builder(requireActivity())
|
||||
.setTitle(value.errTitle)
|
||||
.setMessage(value.errMsg)
|
||||
.setCancelable(false)
|
||||
.setPositiveButton(
|
||||
R.string.security_settings_fingerprint_enroll_dialog_ok
|
||||
) { dialog: DialogInterface, _: Int ->
|
||||
dialog.dismiss()
|
||||
mViewModel?.onErrorDialogAction(
|
||||
if (value.errMsgId == BiometricConstants.BIOMETRIC_ERROR_TIMEOUT)
|
||||
FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
|
||||
else
|
||||
FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH)
|
||||
}
|
||||
.create()
|
||||
.apply { setCanceledOnTouchOutside(false) }
|
||||
}
|
||||
|
||||
override fun onAttach(context: Context) {
|
||||
mViewModel = ViewModelProvider(requireActivity())[
|
||||
FingerprintEnrollEnrollingViewModel::class.java]
|
||||
super.onAttach(context)
|
||||
}
|
||||
}
|
@@ -89,15 +89,9 @@ public class FingerprintEnrollEnrollingViewModel extends AndroidViewModel {
|
||||
*/
|
||||
public static final int FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT = 1;
|
||||
|
||||
/**
|
||||
* Icon touch dialog show
|
||||
*/
|
||||
public static final int FINGERPRINT_ERROR_DIALOG_ACTION_RESTART = 2;
|
||||
|
||||
@IntDef(prefix = { "FINGERPRINT_ERROR_DIALOG_ACTION_" }, value = {
|
||||
FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH,
|
||||
FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT,
|
||||
FINGERPRINT_ERROR_DIALOG_ACTION_RESTART
|
||||
FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
|
||||
})
|
||||
@Retention(RetentionPolicy.SOURCE)
|
||||
public @interface FingerprintErrorDialogAction {}
|
||||
@@ -294,13 +288,6 @@ public class FingerprintEnrollEnrollingViewModel extends AndroidViewModel {
|
||||
return mFingerprintRepository.getFirstFingerprintSensorPropertiesInternal();
|
||||
}
|
||||
|
||||
/**
|
||||
* The first sensor type is UDFPS sensor or not
|
||||
*/
|
||||
public boolean canAssumeUdfps() {
|
||||
return mFingerprintRepository.canAssumeUdfps();
|
||||
}
|
||||
|
||||
/**
|
||||
* Data for passing to FingerprintEnrollEnrollingErrorDialog
|
||||
*/
|
||||
|
@@ -22,7 +22,6 @@ import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnr
|
||||
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG;
|
||||
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED;
|
||||
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP;
|
||||
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_RESTART;
|
||||
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH;
|
||||
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT;
|
||||
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FingerprintErrorDialogAction;
|
||||
@@ -106,11 +105,8 @@ public class FingerprintEnrollEnrollingViewModelTest {
|
||||
public void testErrorDialogActionLiveData() {
|
||||
assertThat(mViewModel.getErrorDialogActionLiveData().getValue()).isEqualTo(null);
|
||||
|
||||
@FingerprintErrorDialogAction int action = FINGERPRINT_ERROR_DIALOG_ACTION_RESTART;
|
||||
mViewModel.onErrorDialogAction(action);
|
||||
assertThat(mViewModel.getErrorDialogActionLiveData().getValue()).isEqualTo(action);
|
||||
|
||||
action = FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT;
|
||||
@FingerprintErrorDialogAction int action =
|
||||
FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT;
|
||||
mViewModel.onErrorDialogAction(action);
|
||||
assertThat(mViewModel.getErrorDialogActionLiveData().getValue()).isEqualTo(action);
|
||||
|
||||
|
Reference in New Issue
Block a user