feat(flutter): pre-warm covers during library sync
Slice 2 of the cover-caching pass. SyncController now downloads cover bytes for newly-upserted albums + playlists into the shared flutter_cache_manager disk cache after each sync transaction commits. A cold-start scroll through the home grid paints from disk on the very first frame instead of firing one HTTP per visible tile. Best-effort: fire-and-forget after commit, concurrency 3, per-URL failures swallowed (404 for collages that haven't built yet, 401 during token-refresh races). Artist covers skipped — ArtistRef.coverUrl is server-derived from "most-recent album" and not reconstructible client-side; album pre-warm already covers the artist's primary visual. Auth header reuses sessionTokenProvider for parity with ServerImage.
This commit is contained in:
@@ -37,6 +37,12 @@ dependencies:
|
||||
# by ServerImage (auth-aware path) and as CachedNetworkImageProvider
|
||||
# for the mini bar (which composes its own Image widget).
|
||||
cached_network_image: ^3.4.1
|
||||
# flutter_cache_manager is the disk-cache layer cached_network_image
|
||||
# sits on top of. SyncController uses DefaultCacheManager directly to
|
||||
# pre-warm covers during metadata sync, so a cold-start home grid
|
||||
# paints from disk on the very first scroll rather than firing a
|
||||
# network round-trip per tile.
|
||||
flutter_cache_manager: ^3.4.1
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
||||
Reference in New Issue
Block a user