Merge "[BiometricsV2] Remove "Try again" button from errorDialog"
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingErrorDialog.java b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingErrorDialog.java
deleted file mode 100644
index ad34e74..0000000
--- a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingErrorDialog.java
+++ /dev/null
@@ -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);
- }
-}
diff --git a/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingErrorDialog.kt b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingErrorDialog.kt
new file mode 100644
index 0000000..6fa22d7
--- /dev/null
+++ b/src/com/android/settings/biometrics2/ui/view/FingerprintEnrollEnrollingErrorDialog.kt
@@ -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)
+ }
+}
diff --git a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java
index 12584ee..e2b2ee2 100644
--- a/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java
+++ b/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModel.java
@@ -89,15 +89,9 @@
*/
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 {}
@@ -295,13 +289,6 @@
}
/**
- * The first sensor type is UDFPS sensor or not
- */
- public boolean canAssumeUdfps() {
- return mFingerprintRepository.canAssumeUdfps();
- }
-
- /**
* Data for passing to FingerprintEnrollEnrollingErrorDialog
*/
public static class ErrorDialogData {
diff --git a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java
index 5ced939..a038747 100644
--- a/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java
+++ b/tests/unit/src/com/android/settings/biometrics2/ui/viewmodel/FingerprintEnrollEnrollingViewModelTest.java
@@ -22,7 +22,6 @@
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 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);