Merge "[BiometricsV2] Remove "Try again" button from errorDialog"
This commit is contained in:
committed by
Android (Google) Code Review
commit
6d6a90062b
@@ -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;
|
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 = {
|
@IntDef(prefix = { "FINGERPRINT_ERROR_DIALOG_ACTION_" }, value = {
|
||||||
FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH,
|
FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH,
|
||||||
FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT,
|
FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT
|
||||||
FINGERPRINT_ERROR_DIALOG_ACTION_RESTART
|
|
||||||
})
|
})
|
||||||
@Retention(RetentionPolicy.SOURCE)
|
@Retention(RetentionPolicy.SOURCE)
|
||||||
public @interface FingerprintErrorDialogAction {}
|
public @interface FingerprintErrorDialogAction {}
|
||||||
@@ -294,13 +288,6 @@ public class FingerprintEnrollEnrollingViewModel extends AndroidViewModel {
|
|||||||
return mFingerprintRepository.getFirstFingerprintSensorPropertiesInternal();
|
return mFingerprintRepository.getFirstFingerprintSensorPropertiesInternal();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* The first sensor type is UDFPS sensor or not
|
|
||||||
*/
|
|
||||||
public boolean canAssumeUdfps() {
|
|
||||||
return mFingerprintRepository.canAssumeUdfps();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Data for passing to FingerprintEnrollEnrollingErrorDialog
|
* 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_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_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_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_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.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT;
|
||||||
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FingerprintErrorDialogAction;
|
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FingerprintErrorDialogAction;
|
||||||
@@ -106,11 +105,8 @@ public class FingerprintEnrollEnrollingViewModelTest {
|
|||||||
public void testErrorDialogActionLiveData() {
|
public void testErrorDialogActionLiveData() {
|
||||||
assertThat(mViewModel.getErrorDialogActionLiveData().getValue()).isEqualTo(null);
|
assertThat(mViewModel.getErrorDialogActionLiveData().getValue()).isEqualTo(null);
|
||||||
|
|
||||||
@FingerprintErrorDialogAction int action = FINGERPRINT_ERROR_DIALOG_ACTION_RESTART;
|
@FingerprintErrorDialogAction int action =
|
||||||
mViewModel.onErrorDialogAction(action);
|
FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT;
|
||||||
assertThat(mViewModel.getErrorDialogActionLiveData().getValue()).isEqualTo(action);
|
|
||||||
|
|
||||||
action = FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT;
|
|
||||||
mViewModel.onErrorDialogAction(action);
|
mViewModel.onErrorDialogAction(action);
|
||||||
assertThat(mViewModel.getErrorDialogActionLiveData().getValue()).isEqualTo(action);
|
assertThat(mViewModel.getErrorDialogActionLiveData().getValue()).isEqualTo(action);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user