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);