Adam Gastineau
225ca9ab8d
chore(mobile): use Drift @DriftAccessor() and collapse some providers ( #30693 )
...
* chore(mobile): use Drift @DriftAccessor() and collapse some providers
* Fix import order
* Required formatting
2026-08-17 14:43:32 -07:00
Santo Shakil
9ab12b0c4e
fix(mobile): mark finished downloads complete instead of leaving them stuck ( #29023 )
...
* wire download status to the ui and dismiss finished entries
* mark finished downloads with a checkmark instead of dismissing
* use the theme color for the done icon and guard status updates on a known task
2026-08-17 16:10:26 +06:00
shenlong
ffc83eae36
chore: more dart lints ( #30665 )
...
Static Code Analysis / pre-job (push) Has been cancelled
Test / pre-job (push) Has been cancelled
Test / ShellCheck (push) Has been cancelled
Test / OpenAPI Clients (push) Has been cancelled
Test / SQL Schema Checks (push) Has been cancelled
CLI Build / Docker (push) Has been cancelled
Docker / Re-Tag ML (push) Has been cancelled
Docker / Re-Tag Server (push) Has been cancelled
Docker / Build and Push ML (push) Has been cancelled
Docker / Build and Push Server (push) Has been cancelled
Docker / Mirror to Docker Hub (push) Has been cancelled
Docker / Docker Build & Push Server Success (push) Has been cancelled
Docker / Docker Build & Push ML Success (push) Has been cancelled
Docs build / Docs Build (push) Has been cancelled
Static Code Analysis / Run Dart Code Analysis (push) Has been cancelled
Test / Scripts unit tests (push) Has been cancelled
Test / Test & Lint Server (push) Has been cancelled
Test / Unit Test CLI (push) Has been cancelled
Test / Unit Test CLI (Windows) (push) Has been cancelled
Test / Lint Web (push) Has been cancelled
Test / Test Web (push) Has been cancelled
Test / Test i18n (push) Has been cancelled
Test / End-to-End Lint (push) Has been cancelled
Test / Medium Tests (Server) (push) Has been cancelled
Test / End-to-End Tests (Server & CLI) (push) Has been cancelled
Test / End-to-End Tests (Web) (push) Has been cancelled
Test / End-to-End Tests Success (push) Has been cancelled
Test / Unit Test Mobile (push) Has been cancelled
Test / Unit Test ML (push) Has been cancelled
Test / .github Files Formatting (push) Has been cancelled
The lints are regrouped and sorted. Also, added the following new lints:
- unnecessary_ignore
- parameter_assignments
- avoid_unused_constructor_parameters
- tighten_type_of_initializing_formals
- only_throw_errors
- deprecated_consistency
- unnecessary_statements
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-15 16:55:45 +05:30
shenlong
1c3a5cf508
chore: remove old people provider ( #30662 )
...
* chore: remove old people provider
* refactor: rename driftGetAllPeopleProvider
* minor fixes
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-12 21:12:12 +05:30
shenlong
303a9f15b1
refactor: reactive driftGetAllPeopleProvider ( #30660 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-12 21:12:12 +05:30
shenlong
52edcc0c74
refactor: unify person model ( #30659 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-12 21:12:11 +05:30
shenlong
a8b3b30aba
chore: migrate mobile translations accessor (4) ( #30671 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-11 14:41:13 +05:30
shenlong
565fbe4917
chore: migrate mobile translations accessor (1) ( #30667 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-11 14:41:11 +05:30
Adam Gastineau
235daff561
chore(mobile): more complicated Freezed pass ( #30452 )
...
* chore(mobile): example freezed implementation on some models
2026-08-10 14:12:45 -07:00
Santo Shakil
0ff47f4178
fix(mobile): don't let a frozen sync block syncing on resume ( #29870 )
...
* fix(mobile): don't let a frozen sync block syncing on resume
* share the task lists between the cancel paths
* fix analyzer issues in resume integration test
* isolate the resume e2e test and pin the worker pool setup
2026-08-10 21:39:38 +06:00
Santo Shakil
9862e50aab
fix(mobile): decode remote thumbnails at displayed size ( #29965 )
...
* fix(mobile): decode remote thumbnails at displayed size
* use nullable decode size and reuse the tapped thumbnail in the viewer
* clean up decode size naming and guards
2026-08-10 21:14:23 +06:00
Santo Shakil
35c2a90fca
fix(mobile): video playback controls dead for backed up videos opened from search ( #30587 )
...
* key video player state by asset id instead of hero tag
* expose id on BaseAsset instead of a separate playerKey
2026-08-09 23:54:55 +06:00
shenlong
e9eafc3161
refactor: gallery permission notifier ( #30477 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-08 11:14:14 -05:00
shenlong
63b90ec43d
fix: map not updating after viewing an asset ( #30601 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-06 16:26:12 +05:30
Adam Gastineau
18d4a796bb
chore(mobile): simple freezed implementation on some models ( #30168 )
...
* chore(mobile): example freezed implementation on some models
* Don't commit Freezed generated code
* Freezed easy pass
* Formatting fix
* Generate Flutter debugging info
2026-08-05 12:00:49 -07:00
Santo Shakil
f0386ce089
fix(mobile): handle asset websocket events ( #30499 )
2026-08-06 00:15:21 +06:00
shenlong
555fbde840
fix: _safeRun is finally safe ( #30571 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-05 21:22:31 +05:30
shenlong
1a40ef66b4
chore: log reason for foreground backup cancellation ( #30570 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-05 20:18:27 +05:30
Santo Shakil
b2eb62dfa5
fix(mobile): keep backup remainder from going negative ( #29011 )
...
* recount the backup counters when a run starts
* clear the error before the recount
* create the cancel token before the recount
2026-08-05 20:17:05 +05:30
shenlong
1c7c28bb0d
chore: more riverpod lints from dcm ( #30447 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-05 01:26:49 +05:30
shenlong
8450687db7
chore: riverpod lints from dcm ( #30446 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-05 01:26:49 +05:30
Santo Shakil
8d2fdd6b8f
fix(mobile): stop websocket reconnect loop draining battery when server is unreachable ( #29901 )
...
* fix(mobile): stop websocket reconnect loop draining battery when server is unreachable
* fix(mobile): reconnect when the websocket is inactive and guard resume against pause
* move the test mocks to the service mocks file
2026-08-04 18:51:28 +00:00
Santo Shakil
7121e0a75c
fix(mobile): run one more sync round when a request arrives mid sync ( #30478 )
...
* fix(mobile): run one more sync round when a request arrives mid sync
* fix(mobile): only queue the extra sync round when the caller asks for it
* fix(mobile): skip the queued sync round when the sync fails
* clear the sync task in whenComplete and gate the queued round on the result
* simplify the queued flag gate
2026-08-04 14:59:19 +00:00
Santo Shakil
e5c3bdad17
fix(mobile): sync stack changes from the websocket ( #30479 )
2026-08-03 19:53:29 +05:30
shenlong
bc84054ccc
refactor: mobile tag and download actions ( #29948 )
...
refactor: mobile tag and download action
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-01 08:06:43 +05:30
shenlong
1fa985babb
feat: album action ( #29770 )
...
refactor: mobile album actions
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-01 08:06:43 +05:30
shenlong
0a97b4b099
refactor: mobile share actions ( #29947 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-01 08:06:42 +05:30
shenlong
9fcbb6eefc
refactor: mobile edit asset actions ( #30264 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-01 08:06:42 +05:30
shenlong
3f3bc44258
refactor: mobile delete action ( #29771 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-01 08:06:41 +05:30
shenlong
47d34e3b4b
refactor: mobile lock action ( #29767 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-01 08:06:41 +05:30
shenlong
e6b5b0deb6
feat: archive action ( #29362 )
...
refactor: mobile archive action
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-01 08:06:40 +05:30
shenlong
208b7cf9ca
feat: stack action ( #29370 )
...
refactor: mobile stack action
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-01 08:06:40 +05:30
shenlong
5b0a324b68
feat: restore action ( #29374 )
...
* refactor: existing actions to new structure
# Conflicts:
# mobile/lib/presentation/actions/action.dart
# mobile/lib/presentation/actions/action.widget.dart
# mobile/lib/presentation/actions/asset_debug.action.dart
# mobile/lib/presentation/actions/favorite.action.dart
# mobile/lib/presentation/actions/partner.action.dart
# mobile/test/unit/presentation/actions/favorite_action_test.dart
* rename to actionitem
* review changes
* refactor: mobile restore action
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-01 08:06:40 +05:30
Adam Gastineau
627b52fdaf
chore(mobile): remove last committed generated files ( #30426 )
2026-07-31 05:31:48 -07:00
shenlong
fe5c8ed0fb
refactor: base action ( #29617 )
...
* refactor: existing actions to new structure
# Conflicts:
# mobile/lib/presentation/actions/action.widget.dart
# mobile/lib/presentation/widgets/action_buttons/favorite_action_button.widget.dart
# mobile/lib/presentation/widgets/action_buttons/unfavorite_action_button.widget.dart
# mobile/test/unit/presentation/partner_page_test.dart
* rename to actionitem
* more cleanup
* review changes
* lint changes
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-07-30 17:02:14 -04:00
Adam Gastineau
e7aace436d
chore(mobile): Apply stricter linting rules for correctness ( #30372 )
...
* chore(mobile): Apply stricter linting rules for correctness
* Added discarded_futures rule
2026-07-30 19:39:24 +00:00
Adam Gastineau
d864a90811
chore(mobile): Apply stricter linting rules for formatting ( #30370 )
...
* chore(mobile): Apply stricter linting rules for formatting
* Formatting fixes
2026-07-30 08:56:46 +00:00
shenlong
04a38ba91c
refactor: asset update method ( #30201 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-07-27 10:15:36 -04:00
shenlong
1f81eac8ab
refactor: toast repository ( #29386 )
...
refactor: feedback repository
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-07-22 19:48:28 +00:00
shenlong
23778551f7
fix: locked view and asset view provider ( #30136 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-07-22 09:51:33 -05:00
Yaros
c9539a4aa8
fix(mobile): map unresponsive after viewing asset ( #27036 )
...
* fix(mobile): map unresponsive after viewing asset
* chore: better fix
2026-07-22 02:56:23 +05:30
Santo Shakil
943bfafb7a
fix(mobile): show real error when an asset can't be added to an album ( #29754 )
...
* fix(mobile): show real error when an asset can't be added to an album
* fix(mobile): show added toast when an add-to-album partly succeeds
* docs(mobile): explain why a partial add-to-album shows added
2026-07-21 10:56:50 -05:00
Timon
ee4bd3f833
feat: add album asset event handling ( #29008 )
...
* feat: add album asset event handling
* fix medium tests
* patch medium test
* collapse in AlbumUpdate
2026-07-21 10:55:46 -05:00
Adam Gastineau
7a7303aceb
fix(mobile): properly group download tasks for Live Photos ( #29952 )
...
* fix(mobile): properly group download tasks for Live Photos
* Remove completely unused onLivePhotoDownloadStatus
* Remove dead code
2026-07-21 10:45:15 -05:00
Santo Shakil
2ad554fc61
fix(mobile): update timeline args on layout constraint changes ( #29653 )
...
* fix(mobile): update timeline args on layout constraint changes
* chore(mobile): temporary blank timeline diagnostics
* chore(mobile): error logs when the timeline goes blank
* chore(mobile): remove blank timeline debug logging
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
2026-07-08 14:13:32 -05:00
shenlong
924e6251fd
fix: do not log out on automatic url switch ( #29715 )
...
fix: sync headers to external endpoints
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-07-07 21:21:37 -05:00
Alex
165bca4b0a
feat: new feature message ( #29388 )
...
* feat: new feature board
* wip
* wip
* wip
* lint
* lint
* pr feedback
* pr feedback
* i18n
* i18n
2026-06-30 13:53:13 -05:00
shenlong
cb1af3a8ec
feat: favorite bottom sheet action ( #29320 )
...
* chore: cleanup partner action test
* feat: favorite bottom sheet action
* review suggestions
* implicit favorite handling
* feat: viewer favorite icon to action (#29321 )
* feat: viewer favorite icon to action
* feat: advance info action
* implicit favorite handling
* feat: viewer favorite icon to action
# Conflicts:
# mobile/lib/presentation/widgets/asset_viewer/viewer_top_app_bar.widget.dart
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
* chore: timeline action test (#29324 )
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
* clear selection only on success
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-06-25 16:55:06 -04:00
shenlong
9d6c219276
fix: current viewer asset reactivity ( #29282 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-06-23 18:40:24 +00:00
okxint
5165cf1d2f
fix(mobile): force AssetViewerPage recreation on repeated view intents ( #29235 )
...
* fix(mobile): force AssetViewerPage recreation on repeated view intents
When View in Immich is triggered a second time while the viewer is
already open, auto_route's replaceAll reuses the existing route (same
type, null key) and Flutter keeps the old ConsumerState alive. The
PageController and preloader inside _AssetViewerState are late final,
so they never reset — the viewer stays frozen on the previous asset.
Passing UniqueKey() to AssetViewerRoute ensures each view intent
creates a fresh widget element, so initState runs, the PageController
is initialised from scratch, and the new TimelineService from the
updated ProviderScope override is picked up correctly.
Fixes #29230
* clean up
---------
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2026-06-23 17:43:56 +00:00