From dbac832ae9031b43f6702b85ec90689c66e79409 Mon Sep 17 00:00:00 2001 From: Joe Bolinger Date: Fri, 27 Aug 2021 15:24:16 -0700 Subject: [PATCH] Fix crash when error messages are triggered due to configuration changes. Bug: 197265282 Test: Manaul (start enrollment and switch active display) Change-Id: Id83ea58dc6b06461f48cddf90e85cc682ac2451c --- .../fingerprint/FingerprintErrorDialog.java | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java b/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java index fa929514173..0fc8670402f 100644 --- a/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java +++ b/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java @@ -31,12 +31,18 @@ import com.android.settings.biometrics.BiometricErrorDialog; */ public class FingerprintErrorDialog extends BiometricErrorDialog { public static void showErrorDialog(BiometricEnrollBase host, int errMsgId) { + if (host.isFinishing()) { + return; + } + + final FragmentManager fragmentManager = host.getSupportFragmentManager(); + if (fragmentManager.isDestroyed()) { + return; + } + final CharSequence errMsg = host.getText(getErrorMessage(errMsgId)); final FingerprintErrorDialog dialog = newInstance(errMsg, errMsgId); - final FragmentManager fragmentManager = host.getSupportFragmentManager(); - if (!fragmentManager.isDestroyed()) { - dialog.show(fragmentManager, FingerprintErrorDialog.class.getName()); - } + dialog.show(fragmentManager, FingerprintErrorDialog.class.getName()); } private static int getErrorMessage(int errMsgId) {