immich/mobile/lib
Santo Shakil 429e181c8f
fix(mobile): run iOS bg task phases in parallel (#28293)
onIosUpload runs sync local, sync remote, hash and handle backup
sequentially. on the bg refresh task path that's a 20s budget from
iOS, and sync + hash usually eat all of it before backup gets a turn
to enqueue any candidates.

these phases don't actually depend on each other. local + remote sync
touch different tables. hash works off whatever's already in drift.
handle backup reads candidates and just enqueues to URLSession bg.
anything one phase produces in this fire shows up to the others on
the next fire, and server-side dedup catches the rare race where
backup enqueues something sync remote was about to mark as already
uploaded.

so this runs all four concurrently via Future.wait, with hash getting
the full maxSeconds-1 budget instead of a fixed 5s. outer budget
timeout still caps everything before iOS expires.

second small change: getAssetsToHash orders by createdAt DESC instead
of id ASC to match getCandidates. when hash runs inside a refresh
fire it processes recent photos first.
2026-06-03 20:13:52 -05:00
..
constants feat(mobile): improve downloading algorithm for sharing (#27312) 2026-05-27 17:00:49 +00:00
domain fix(mobile): run iOS bg task phases in parallel (#28293) 2026-06-03 20:13:52 -05:00
entities refactor: yeet old timeline (#27666) 2026-04-15 23:00:27 +05:30
extensions feat(mobile): add three-state field serialization (#27231) 2026-06-03 08:13:17 -04:00
infrastructure fix(mobile): run iOS bg task phases in parallel (#28293) 2026-06-03 20:13:52 -05:00
interfaces refactor(mobile): interfaces refactor (#19415) 2025-06-23 11:27:44 -05:00
mixins chore: flutter 3.29.1 (#16730) 2025-03-10 21:46:36 -05:00
models feat(mobile): Android. Immich as a gallery / image viewer app (#26109) 2026-06-03 12:05:52 -05:00
pages fix(mobile): shared link edit sends explicit null instead of empty string (#28812) 2026-06-03 18:19:35 -04:00
platform feat(mobile): Android. Immich as a gallery / image viewer app (#26109) 2026-06-03 12:05:52 -05:00
presentation fix(mobile): clear album description sends null instead of empty string (#28817) 2026-06-03 18:22:19 -04:00
providers fix(mobile): clear album description sends null instead of empty string (#28817) 2026-06-03 18:22:19 -04:00
repositories fix(mobile): clear album description sends null instead of empty string (#28817) 2026-06-03 18:22:19 -04:00
routing feat(mobile): add three-state field serialization (#27231) 2026-06-03 08:13:17 -04:00
services fix(mobile): shared link edit sends explicit null instead of empty string (#28812) 2026-06-03 18:19:35 -04:00
theme fix(mobile): mismatch between system and app color when using low-chroma system color scheme (#27282) 2026-03-27 09:21:43 -05:00
utils ci: verify mobile backward compatibility (#28786) 2026-06-03 15:21:23 +00:00
widgets feat(mobile): Android. Immich as a gallery / image viewer app (#26109) 2026-06-03 12:05:52 -05:00
main.dart feat(mobile): Android. Immich as a gallery / image viewer app (#26109) 2026-06-03 12:05:52 -05:00
wm_executor.dart fix(mobile): proper background task cleanup (#28694) 2026-06-03 08:16:19 -04:00