Fixed
Status Update
Comments
kc...@google.com <kc...@google.com>
cu...@google.com <cu...@google.com>
ap...@google.com <ap...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit ba0e2f93d968e980f58f8a3c8143bd0eeb4935ce
Author: Curtis Belmonte <curtislb@google.com>
Date: Tue Sep 24 10:07:05 2019
Avoid crashes when dismissing FingerprintDialogFragment
Currently, it's possible for the biometric library to crash if the user
presses back to dismiss the fingerprint dialog while the device is
changing configuration (e.g., rotating). This commit adds and makes use
of a new method for dismissing this fragment that avoids crashes by
first checking if it is associated with a fragment manager.
Test: ./gradlew biometric:connectedAndroidTest
Test: On Android O, show prompt, rotate device, press back repeatedly.
Before: App crashes
After: App does not crash
Fixes: 141356362
Change-Id: I52d2f32df41881a073a44315950b608a4a4f6ecd
A biometric/src/androidTest/java/androidx/biometric/FingerprintDialogFragmentTest.java
M biometric/src/main/java/androidx/biometric/BiometricPrompt.java
M biometric/src/main/java/androidx/biometric/FingerprintDialogFragment.java
https://android-review.googlesource.com/1127011
https://goto.google.com/android-sha1/ba0e2f93d968e980f58f8a3c8143bd0eeb4935ce
Branch: androidx-master-dev
commit ba0e2f93d968e980f58f8a3c8143bd0eeb4935ce
Author: Curtis Belmonte <curtislb@google.com>
Date: Tue Sep 24 10:07:05 2019
Avoid crashes when dismissing FingerprintDialogFragment
Currently, it's possible for the biometric library to crash if the user
presses back to dismiss the fingerprint dialog while the device is
changing configuration (e.g., rotating). This commit adds and makes use
of a new method for dismissing this fragment that avoids crashes by
first checking if it is associated with a fragment manager.
Test: ./gradlew biometric:connectedAndroidTest
Test: On Android O, show prompt, rotate device, press back repeatedly.
Before: App crashes
After: App does not crash
Fixes: 141356362
Change-Id: I52d2f32df41881a073a44315950b608a4a4f6ecd
A biometric/src/androidTest/java/androidx/biometric/FingerprintDialogFragmentTest.java
M biometric/src/main/java/androidx/biometric/BiometricPrompt.java
M biometric/src/main/java/androidx/biometric/FingerprintDialogFragment.java
Description
Version used: androidx.biometric:biometric:1.0.0-beta01
Devices/Android versions reproduced on: any
STEPS TO REPRODUCE
1. trigger to show the fingerprint dialog
2. Rotate the screen multiple times, click back button multiple times while rorating the screen
3. Crash
EXPECTED RESULTS
No Crash
OBSERVED RESULTS
Crash
Crash Logs:
java.lang.IllegalStateException: Fragment FingerprintDialogFragment{5d52b54 (d796d2ee-47c5-4285-931d-3de83709fdf4)} not associated with a fragment manager.
at androidx.fragment.app.Fragment.requireFragmentManager(Fragment.java:901)
at androidx.fragment.app.DialogFragment.dismissInternal(DialogFragment.java:245)
at androidx.fragment.app.DialogFragment.dismiss(DialogFragment.java:202)
at androidx.biometric.FingerprintDialogFragment.lambda$QL3HxeopCbVj7FA_LS90lOy8iOg(Unknown Source:0)
at androidx.biometric.-$$Lambda$FingerprintDialogFragment$QL3HxeopCbVj7FA_LS90lOy8iOg.run(Unknown Source:2)
at android.os.Handler.handleCallback(Handler.java:789)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6938)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
NUMBER OF TIMES YOU WERE ABLE TO REPRODUCE (3/10)