Source: perf audit of the Paging 3 usage (finding — future work, backlog).
The app currently uses no image-loading library (no Coil / Glide / Picasso / Fresco). List avatars are text initials in a colored Box (app/src/main/kotlin/org/libremail/ui/mailbox/MailboxScreen.kt:586), so there are no bitmaps to decode per row today — fine for the current design.
Context When avatars become real images (contact / gravatar / sender photos), or any list shows remote/bitmap images, they must load asynchronously off the main thread with memory + disk caching — otherwise per-row decode/IO would jank scrolling (the RecyclerView "async avatar loading" item, mapped to Compose). Adopt Coil (Compose-native AsyncImage, coroutine-based) at that point, using the current initials avatar as the placeholder/fallback.
Action - Design and propose/spike out a performant image loading pattern for this Android client
**Source:** perf audit of the Paging 3 usage (finding — future work, backlog).
The app currently uses **no image-loading library** (no Coil / Glide / Picasso / Fresco). List avatars are text initials in a colored `Box` (`app/src/main/kotlin/org/libremail/ui/mailbox/MailboxScreen.kt:586`), so there are no bitmaps to decode per row today — fine for the current design.
**Context** When avatars become real images (contact / gravatar / sender photos), or any list shows remote/bitmap images, they must load **asynchronously off the main thread with memory + disk caching** — otherwise per-row decode/IO would jank scrolling (the RecyclerView "async avatar loading" item, mapped to Compose). Adopt **Coil** (Compose-native `AsyncImage`, coroutine-based) at that point, using the current initials avatar as the placeholder/fallback.
**Action** - Design and propose/spike out a performant image loading pattern for this Android client
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Source: perf audit of the Paging 3 usage (finding — future work, backlog).
The app currently uses no image-loading library (no Coil / Glide / Picasso / Fresco). List avatars are text initials in a colored
Box(app/src/main/kotlin/org/libremail/ui/mailbox/MailboxScreen.kt:586), so there are no bitmaps to decode per row today — fine for the current design.Context When avatars become real images (contact / gravatar / sender photos), or any list shows remote/bitmap images, they must load asynchronously off the main thread with memory + disk caching — otherwise per-row decode/IO would jank scrolling (the RecyclerView "async avatar loading" item, mapped to Compose). Adopt Coil (Compose-native
AsyncImage, coroutine-based) at that point, using the current initials avatar as the placeholder/fallback.Action - Design and propose/spike out a performant image loading pattern for this Android client