-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Blur frozen on Android API 31 #77
Comments
So it seems that the |
I'll have another play tomorrow and see if I can get something working. If not I'll probably have to bump up the min SDK level for the blur impl to 32 for now. |
I hope I can add some context as to the origins and the reason why this bug happens. It appears that everything is okay on the Compose side. The issue here is with the RenderNode. My hypothesis is that on API 31, it fails to refresh on the JNI side if its position has not updated since the latest draw call. More specifically, in this part of the code:
If we feed different positions at each call, the RenderNode is updated successfully. It is not acceptable to use in the library, of course, but I wrote a little dirty hack to reproduce this behavour: https://github.com/gleb-skobinsky/haze/blob/main/haze/src/androidMain/kotlin/dev/chrisbanes/haze/AndroidHazeNode.kt 2024-02-29.21.47.15.mov |
The video is so short because github does not accept long screen recordings :) |
UPD: I managed to remove the freeze on SDK level 31 without the hacks! Just applied the translation to the |
It took hours to debug this... |
Great detective work @gleb-skobinsky! Send a PR over? |
Yes, I will create a PR today |
On Android 12 (API 31) the blur is frozen while scrolling.
Only when the bottom navigation appears or disappears the blur quickly updates and is then frozen again.
Seems like
HazeNode31.onObservedReadsChanged()
is not called. Probably a bug in Compose or can we do something about it?See attached video of the android-jetpack sample on API 31. It is working as expected on API 32.
haze-api31.mp4
The text was updated successfully, but these errors were encountered: