ShimmerAsyncImage keyed its loaded-state on the passed model, and the callers built a fresh coil ImageRequest on every recomposition. ImageRequest has no value equality, so the key changed every time: the loaded flag reset, the shimmer overlay was re-added and the image load restarted with each recomposition — an infinite animation per card that never disposed. On the TV this showed as a general fps collapse wherever thumbnails render (issue #28's feature shipped with this trap). The requests are now remembered under stable keys (video/channel id and the URL strings), so the sweep stops for real once the image (or an error) lands. Addresses #28. Co-Authored-By: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| src | ||
| build.gradle.kts | ||
| proguard-rules.pro | ||