Fixed
Status Update
Comments
du...@google.com <du...@google.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.
du...@google.com <du...@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
ti...@chainels.com <ti...@chainels.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
du...@google.com <du...@google.com> #5
deleted
du...@google.com <du...@google.com> #6
Assigning back to triage queue so it's not lost in mine, will take a look soon.
ap...@google.com <ap...@google.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.
Description
Component used: Paging
Version used: 3.0 alpha-04
Devices/Android versions reproduced on: n/a
Today (after many hours of debugging) I seem to have found a bug in latest alpha version of the Paging library. In my app I still have various lists that are not yet migrated to the new v3 API's, but since the documentation states it's backward compatible I figured that was okay.
Those lists use the database + remote pattern. One such list displayed strange behavior, it seemed to call all the boundary callbacks correctly, do the API call, and insert the new items in the database, however the items in the RecyclerView did not change.
The only difference that I could find between that list and other lists that were functioning correctly, is that it used a
map
function on theDatasource.Factory
returned by RoomI think I found the underlying issue. The data source does not seem to be invalidated when using a map function.
DataSource
has two variants ofaddOnValidationCallback
. An open functionThe Kotlin version is actually called in
LegacyPagingSource
However when using a map/mapByPage function on the factory returned by room, the source is wrapped and in that class ( , but also
WrappedDataSource
WrapperPositionalDataSource
for example) only the non Kotlin version ofaddOnValidationCallback
is overridden, and thus if called with the Kotlin version,addOnValidationCallback
is never called on the source of the wrapper.I could see when debugging that indeed
onInvalidatedCallbacks
is empty.Hopefully this is actually the cause of the behavior I'm seeing. The Paging code is quite complex so I could be missing something else.