Fix crash when error messages are triggered due to configuration changes.
Bug: 197265282
Test: Manaul (start enrollment and switch active display)
Change-Id: Id83ea58dc6b06461f48cddf90e85cc682ac2451c
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java b/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java
index fa92951..0fc8670 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintErrorDialog.java
@@ -31,12 +31,18 @@
*/
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) {