From 02a215e4e7c67ec2ac88e3fa301db0f728cf4304 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 16 Feb 2023 21:13:56 +0100 Subject: [PATCH] Prevent crash --- .../java/eu/faircode/email/ActivityBase.java | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityBase.java b/app/src/main/java/eu/faircode/email/ActivityBase.java index fac99463d5..41f5c5fc13 100644 --- a/app/src/main/java/eu/faircode/email/ActivityBase.java +++ b/app/src/main/java/eu/faircode/email/ActivityBase.java @@ -188,14 +188,12 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc window.setNavigationBarColor(colorPrimaryDark); } - Fragment bfragment = getSupportFragmentManager() - .findFragmentByTag("androidx.biometric.BiometricFragment"); + FragmentManager fm = getSupportFragmentManager(); + + Fragment bfragment = fm.findFragmentByTag("androidx.biometric.BiometricFragment"); if (bfragment != null) { Log.e("Orphan BiometricFragment"); - getSupportFragmentManager() - .beginTransaction() - .remove(bfragment) - .commitNowAllowingStateLoss(); + fm.beginTransaction().remove(bfragment).commitNowAllowingStateLoss(); /* java.lang.RuntimeException: Unable to start activity ComponentInfo{eu.faircode.email/eu.faircode.email.ActivitySetup}: androidx.fragment.app.Fragment$InstantiationException: Unable to instantiate fragment androidx.biometric.FingerprintDialogFragment: could not find Fragment constructor at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2957) @@ -233,6 +231,12 @@ abstract class ActivityBase extends AppCompatActivity implements SharedPreferenc */ } + Fragment ffragment = fm.findFragmentByTag("androidx.biometric.FingerprintDialogFragment"); + if (ffragment != null) { + Log.e("Orphan FingerprintDialogFragment"); + fm.beginTransaction().remove(ffragment).commitNowAllowingStateLoss(); + } + checkAuthentication(true); super.onCreate(savedInstanceState);