Fixed
Status Update
Comments
ma...@google.com <ma...@google.com>
ka...@mercari.com <ka...@mercari.com> #2
Thank you for reporting this issue. For us to further investigate this issue, please provide the following additional information:
Steps to reproduce
What steps are needed to reproduce this issue?
If required, please provide sample project or apk to reproduce the issue. Also mention the steps to be followed for reproducing the issue with the given sample project or apk.
Expected output
What is the expected output?
Current output
What is the current output?
Android bug report capturing
After reproducing the issue, press the volume up, volume down, and power button simultaneously. This will capture a bug report on your device in the “bug reports” directory. Attach the bug report file to this issue.
Alternate method
After reproducing the issue, navigate to “developer settings”, ensure “USB debugging” is enabled, then enable “Bug report shortcut”. Capture bug report by holding the power button and selecting the “Take bug report” option.
Screen Record of the Issue
Please capture screen record or video of the issue using following steps:
adb shell screenrecord /sdcard/video.mp4
Subsequently use following command to pull the recorded file:
adb pull /sdcard/video.mp4
Attach the file to this issue.
Steps to reproduce
What steps are needed to reproduce this issue?
If required, please provide sample project or apk to reproduce the issue. Also mention the steps to be followed for reproducing the issue with the given sample project or apk.
Expected output
What is the expected output?
Current output
What is the current output?
Android bug report capturing
After reproducing the issue, press the volume up, volume down, and power button simultaneously. This will capture a bug report on your device in the “bug reports” directory. Attach the bug report file to this issue.
Alternate method
After reproducing the issue, navigate to “developer settings”, ensure “USB debugging” is enabled, then enable “Bug report shortcut”. Capture bug report by holding the power button and selecting the “Take bug report” option.
Screen Record of the Issue
Please capture screen record or video of the issue using following steps:
adb shell screenrecord /sdcard/video.mp4
Subsequently use following command to pull the recorded file:
adb pull /sdcard/video.mp4
Attach the file to this issue.
an...@google.com <an...@google.com> #3
Hi,
I think it's my mistake, I guess I should not invoke BiometricPrompt from onResume it will cause an infinite loop.
Running on Samsung A50 Android 9 or Emulator Nexus 5X API 27
Android Studio 3.5.1
compileSdkVersion 29
minSdkVersion 21
targetSdkVersion 29
def biometric_version = "1.0.0-rc01"
implementation "androidx.biometric:biometric:$biometric_version"
Scenario 1:
- No biometric or device credentials (PIN, pattern, password) configured
- Biometric prompt not showing
- Tap on Toast button
- Activity is not responding (can't tap on button)
Scenario 2:
- Device credential configured (Pattern)
- Biometric prompt showing pattern authentication
- Tap on Cancel
- Tap on Toast button
- Activity is not responding (can't tap on button)
Expected output : Toast showing when button tapped
I think it's my mistake, I guess I should not invoke BiometricPrompt from onResume it will cause an infinite loop.
Running on Samsung A50 Android 9 or Emulator Nexus 5X API 27
Android Studio 3.5.1
compileSdkVersion 29
minSdkVersion 21
targetSdkVersion 29
def biometric_version = "1.0.0-rc01"
implementation "androidx.biometric:biometric:$biometric_version"
Scenario 1:
- No biometric or device credentials (PIN, pattern, password) configured
- Biometric prompt not showing
- Tap on Toast button
- Activity is not responding (can't tap on button)
Scenario 2:
- Device credential configured (Pattern)
- Biometric prompt showing pattern authentication
- Tap on Cancel
- Tap on Toast button
- Activity is not responding (can't tap on button)
Expected output : Toast showing when button tapped
ka...@mercari.com <ka...@mercari.com> #4
But I do not have issue if I remove "setDeviceCredentialAllowed", that's what make me thing there is something wrong
Steps to reproduce:
- Fingerprint configured in settings
- Biometric prompt showing
- Tap on cancel
- Tap on Toast button
- Toast is showing
Scenario 2:
- Device credential configured (Pattern)
- Biometric prompt showing pattern authentication
- Tap on Cancel
- Tap on Toast button
- Activity is not responding (can't tap on button)
Behaviour is not the same between biometric and credentials authentication
Steps to reproduce:
- Fingerprint configured in settings
- Biometric prompt showing
- Tap on cancel
- Tap on Toast button
- Toast is showing
Scenario 2:
- Device credential configured (Pattern)
- Biometric prompt showing pattern authentication
- Tap on Cancel
- Tap on Toast button
- Activity is not responding (can't tap on button)
Behaviour is not the same between biometric and credentials authentication
ap...@google.com <ap...@google.com> #5
deleted
ap...@google.com <ap...@google.com> #6
Assigning back to triage queue so it's not lost in mine, will take a look soon.
an...@google.com <an...@google.com>
ka...@mercari.com <ka...@mercari.com> #7
mathieumolette@gmail.com: You're right that this is likely caused by invoking BiometricPrompt in onResume, causing an authentication loop. But the specific side effect of having the transparent handling activity get stuck onscreen is definitely not intended and ideally shouldn't be this easy to run into. I'll look into making this more robust.
st...@google.com <st...@google.com> #8
Project: platform/frameworks/support
Branch: androidx-master-dev
commit a9cbd7e42fd38c18395c23fd17622c731c60c724
Author: Curtis Belmonte <curtislb@google.com>
Date: Mon Oct 28 11:00:33 2019
Fix leak of biometric credential handler activity
Due to a race condition, which can be triggered by launching
BiometricPrompt immediately after it's dismissed (e.g., by calling
authenticate() in onResume() or onCreate()), it's currently possible for
the transparent DeviceCredentialHandlerActivity to get stuck onscreen.
This results in no visible change but consumes all touch events until
the user presses back or pauses the activity.
This commit fixes the issue of the activity getting stuck onscreen by
ensuring that DeviceCredentialHandlerActivity is finished (without an
explicit authentication result) in this case.
Test: Have sample app call BiometricPrompt#authenticate() in onResume()
Before: After first auth, transparent activity is stuck onscreen
After: After first auth, the prompt launches again successfully
Fixes: 143091227
Change-Id: Id11918662be4634c017094806816a990e84ffd62
M biometric/src/main/java/androidx/biometric/DeviceCredentialHandlerActivity.java
https://android-review.googlesource.com/1151594
https://goto.google.com/android-sha1/a9cbd7e42fd38c18395c23fd17622c731c60c724
Branch: androidx-master-dev
commit a9cbd7e42fd38c18395c23fd17622c731c60c724
Author: Curtis Belmonte <curtislb@google.com>
Date: Mon Oct 28 11:00:33 2019
Fix leak of biometric credential handler activity
Due to a race condition, which can be triggered by launching
BiometricPrompt immediately after it's dismissed (e.g., by calling
authenticate() in onResume() or onCreate()), it's currently possible for
the transparent DeviceCredentialHandlerActivity to get stuck onscreen.
This results in no visible change but consumes all touch events until
the user presses back or pauses the activity.
This commit fixes the issue of the activity getting stuck onscreen by
ensuring that DeviceCredentialHandlerActivity is finished (without an
explicit authentication result) in this case.
Test: Have sample app call BiometricPrompt#authenticate() in onResume()
Before: After first auth, transparent activity is stuck onscreen
After: After first auth, the prompt launches again successfully
Fixes: 143091227
Change-Id: Id11918662be4634c017094806816a990e84ffd62
M biometric/src/main/java/androidx/biometric/DeviceCredentialHandlerActivity.java
na...@google.com <na...@google.com> #9
al...@mercari.com <al...@mercari.com> #10
Issue is still existing with the same rate in 1.3.3 and similar reproduction steps. Since this ticket is already set as fixed, should we file a new bug?
an...@google.com <an...@google.com> #11
Hey. Please check that you can reproduce the same issue with the latest 1.4 release and if yes please file a new bug. Thanks
Description
Jetpack Compose version: 1.3.0 & 1.4.0-alpha02
Android Studio Build: IntelliJ IDEA 2022.2.3
Kotlin version: 1.7.10
Steps to Reproduce or Code Sample to Reproduce:
We're seeing an issue where a Lazy layout with a BoxWithConstraints in the
item
will add new items to the saved bundle every time the user scrolls. The entries appear to be AbsSavedState.EMPTY_STATE, but there are so many of them that the bundle fills up quickly and can cause a "TransactionTooLargeException".I've attached a sample project demonstrating the issue. The issue only appears on Android 9, and the sample project does not exhibit the issue in either Android 8.1 or Android 10. Nor does the issue happen when swapping BoxWithConstraints with Box. Also it appears to have been introduced some point after Compose 1.2.0, as the sample also doesn't experience the issue on Android 9 when using Compose 1.2.0.