Fix crash when error messages are triggered due to configuration changes.

Bug: 197265282
Test: Manaul (start enrollment and switch active display)
Change-Id: Id83ea58dc6b06461f48cddf90e85cc682ac2451c
This commit is contained in:
Joe Bolinger
2021-08-27 15:24:16 -07:00
parent a1b8347ae4
commit dbac832ae9

View File

@@ -31,12 +31,18 @@ import com.android.settings.biometrics.BiometricErrorDialog;
*/ */
public class FingerprintErrorDialog extends BiometricErrorDialog { public class FingerprintErrorDialog extends BiometricErrorDialog {
public static void showErrorDialog(BiometricEnrollBase host, int errMsgId) { 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 CharSequence errMsg = host.getText(getErrorMessage(errMsgId));
final FingerprintErrorDialog dialog = newInstance(errMsg, errMsgId); final FingerprintErrorDialog dialog = newInstance(errMsg, errMsgId);
final FragmentManager fragmentManager = host.getSupportFragmentManager(); dialog.show(fragmentManager, FingerprintErrorDialog.class.getName());
if (!fragmentManager.isDestroyed()) {
dialog.show(fragmentManager, FingerprintErrorDialog.class.getName());
}
} }
private static int getErrorMessage(int errMsgId) { private static int getErrorMessage(int errMsgId) {