c263b0d4d2
feat(mobile): editors can update album title & description ( #31959 )
...
feat(mobile): editors can update album title & description (#31954 )
(cherry picked from commit cc916979502390640e186e421f84f3ce7414c884)
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com >
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-09-30 21:26:59 +00:00
c12d5e6d35
feat: people management ( #31620 )
...
Co-authored-by: Jason Rasmussen <jason@rasm.me >
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-09-28 21:29:15 +02:00
Luis Nachtigall
523c26e723
fix(mobile): don't clear cached initial image operation on completion ( #31822 )
2026-09-26 17:44:11 -04:00
Luis Nachtigall
93f65b750e
fix(mobile): make cancellation in image providers consistent ( #31823 )
...
fix(mobile): handle cancellation in image providers
2026-09-26 17:39:15 -04:00
Santo Shakil
fbff5f41be
fix(mobile): ask before deleting local only photos on android 10 and below ( #31146 )
...
* ask before deleting local only photos on android 10 and below
* move the delete consent prompt into _cleanupLocalAssets
* ask on android 11 as well before deleting local photos
* ask before deleting only where android shows no prompt
* split the local delete prompt into its own helper
* pick the local delete dialog in one flat branch and rename notBackedUp to isLocalOnly
2026-09-25 20:19:01 +06:00
Adam Gastineau
2ccd0effc8
chore(mobile): enable dead code CI ( #31753 )
...
* chore(mobile): enable dead code CI
* Restore accidentally removed test and set mise default
2026-09-24 06:57:06 -07:00
Santo Shakil
2466eaeecd
fix(mobile): play the server copy when the local video file cannot be read ( #31606 )
...
* play the server copy when the local video file cannot be read
* flatten the video source choice and add tests for it
* drop the platform override from the video viewer test
2026-09-24 10:15:33 +06:00
Adam Gastineau
91247f1492
chore(mobile): migrate OCR, Tag, and UserMetadata to Store ( #31704 )
...
* chore(mobile): migrate OCR, Tag, and UserMetadata to Store
* Add comments to Tag HTTP repository
* Add mounted check
2026-09-22 18:29:33 +00:00
Adam Gastineau
f367ab2121
fix(mobile): prevent SurfaceLayer crashing on maps in Viewer on Android ( #31709 )
2026-09-22 20:55:22 +05:30
Adam Gastineau
241ca1e2a2
chore(mobile): make Person Store reactive via Drift ( #31661 )
2026-09-18 11:21:31 -07:00
Luis Nachtigall
9994eb3bed
fix(mobile): prevent live photo from getting stuck during dismiss animation ( #28080 )
...
* update animation methods to return futures
* fix(mobile): prevent live photo from getting stuck during dismiss animation
* chore: rename variables + comment
2026-09-17 10:32:20 -07:00
Luis Nachtigall
5c8037301c
fix(mobile): fill video placeholder to prevent flicker on open ( #31621 )
2026-09-17 05:44:08 -07:00
TokenLimitExceeded
810454a343
fix: set limit maximum zoom in asset viewer ( #31609 )
...
* set maxScale in asset viewer
fix #31496 by setting a a maximum of 10× the fitted size
* change maxScale to 20x
* moved the multiplier to a constant
* type fix
* fix mismerge
2026-09-16 12:15:21 -07:00
Adam Gastineau
bd59a373de
fix(mobile): make EXIF provider reactive ( #31552 )
...
* fix(mobile): make EXIF provider reactive
* Fix tests
* Remove unnecessary invalidations
2026-09-16 17:36:37 +00:00
Adam Gastineau
2e98d745bf
fix(mobile): load more than one image on Android with Remove animations ( #31587 )
...
* fix(mobile): load more than one image on Android with Remove animations
* Wrap album Mesmerizing Slivers with ProgressiveImage
2026-09-16 13:47:23 +00:00
Adam Gastineau
64de38092e
chore(mobile): centralize duplicate mesmerizing header components ( #31590 )
...
* chore(mobile): centralize duplicate mesmerizing header components
* Fix formatting
2026-09-15 12:33:15 -07:00
Jason Rasmussen
99fd561144
chore: transition to nullable user.oauthId ( #31560 )
2026-09-15 09:33:15 -04:00
Adam Gastineau
6874c07dbe
chore(mobile): static Store to unify and streamline reactivity ( #31099 )
...
* chore(mobile): static Store to unify and streamline reactivity
* Add tests of caching and new stores
* Don't instantiate PeopleDbRepository
* Slight DB rename and fix throwing store methods
2026-09-11 10:56:00 -07:00
Arthur and Arthur
7a6cfa65a9
chore(mobile): correctly rename person form state class ( #31428 )
...
chore: correctly name _PersonBirthdayEditFormState
Co-authored-by: Arthur <arthur@freye.in >
2026-09-11 06:08:15 -07:00
Damiano Ferrari
d6dc6dcc3b
refactor(mobile): convert CropAspectRatio to an enhanced enum ( #31119 )
...
* chore: migrate `CropAspectRatio` to enhanced enum
* chore: remove wrongly added file
* chore: implemented mertalev suggested changes
* fix: Added translations
* fix: address linter errors
2026-09-09 11:57:21 -07:00
Adam Gastineau
ed38695209
chore(mobile): split out Timeline dragging into new widget ( #31255 )
2026-09-08 12:27:15 -07:00
Yaros
956330958f
fix(mobile): hide negative age ( #31341 )
2026-09-08 10:25:56 -07:00
Adam Gastineau
df7494b49e
chore(mobile): split Timeline widget into smaller parts ( #31223 )
2026-09-08 07:11:04 -07:00
8d90cbeafc
chore(mobile): remove unused code ( #31280 )
...
* chore: remove unused methods
* Remove dead test group
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Adam Gastineau <adam@agg.im >
2026-09-08 13:56:46 +00:00
Adam Gastineau
a6d43828f6
fix(mobile): rewrite slideshow controller system ( #30771 )
...
* fix(mobile): rewrite slideshow controller system
* Normalize playback status changes
* Improve preloading assets
* Added controller and widget tests
* Minor fixes from PR comments
* More minor fixes
* Move slideshow test after rename
2026-09-04 07:48:49 -07:00
Adam Gastineau
8fbddc8f3a
fix(mobile): use timeline scroll velocity to add placeholders ( #29443 )
...
* fix(mobile): use timeline scroll velocity to add placeholders
* Switch to using Flutter recommendDeferredLoading
* Shared debounce logic
2026-09-03 16:29:14 +00:00
Adam Gastineau
8e04e6e2c6
fix(mobile): prevent inner mutability on Freezed classes ( #31229 )
...
* fix(mobile): prevent inner mutability on Freezed classes
* Minor fixes
2026-09-03 21:04:58 +05:30
Adam Gastineau
6d85f202f4
fix(mobile): switch to new OpenAPI int in RotateParameters ( #31246 )
2026-09-03 14:32:01 +00:00
Adam Gastineau
dc813e2816
fix(mobile): handle transient loading states for map timelines ( #29735 )
...
* fix(mobile): handle transient loading states for map timelines
* fix(mobile): handle transient loading states for map timelines
* Add support for new method
* Rewrote map options notifier to be more Riverpody
2026-08-28 06:06:10 -07:00
shenlong and shenlong-tanwen
22a56a79f2
fix: ios map settings sheet ( #31060 )
...
fix: ios map settings
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-08-28 00:27:02 +05:30
Adam Gastineau
c04c81a979
chore(mobile): remove Drift* prefixes from classes and variables ( #31038 )
...
* chore(mobile): remove Drift* prefixes from classes and variables
* Remove *Drift* from related mocks
2026-08-26 19:11:12 +00:00
Yaros and shenlong-tanwen
0f821a7338
feat(mobile): map asset number ( #28911 )
...
* feat(mobile): map asset number
* chore: use totalAssets from service
* refactor: separate widget
* fix: async dispose
* chore: i18n
* chore: add back old i18n key
* bring back reactivity
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-08-26 05:59:27 +00:00
Lauritz Tieste and shenlong-tanwen
4ff7148f85
feat(mobile): show asset owner in asset details ( #29302 )
...
* feat(mobile): show asset owner in asset details
* refactor(mobile): fetch asset owner from local DB instead of API
* cleanup
* review changes
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-08-25 20:40:05 +00:00
Damiano Ferrari
290861e347
fix(mobile): aspect ratio change ( #30939 )
...
* fix(mobile): aspect ratio change
* chore: explain the change
2026-08-25 13:52:05 -05:00
351be95769
feat: memories view ( #28675 )
...
* wip web memories view
* paginate searchMemories
* improve memories ui
* feat(mobile): memories view
* improve memories web ui
* fix(web): avoid unnecessary memory refreshes
* refactor(web): move timline memory manager filter
* fix(web): memories infinitely loading on 0 results
* fix(web): memories resetting
* feat(web): animated memory previews
* feat(web): memory page dark styling
* chore(mobile): fix failing memory lane tests
* chore(mobile): remove old import
* chore(e2e): fix failing memory lane tests
* chore(server): revert searchMemories changes
* chore(server): lint
* chore(mobile): fix bad merge
* chore(e2e): fix memory ui tests
* chore(web): rename /memory to /memories
* chore(mobile): linting
* chore(web): linting
* fix(web): prevent duplicate memory page loading
* fix(web): lint
* fix(web): memories page improvements
* chore(mobile): lint
* fix(mobile): fix translations
* fix(mobile): build errors
* fix(web): prevent memories from infinitely loading
* chore(e2e)): fix failng memory viewer test
* chore(web): clean up types in memory manager
* chore(web): lint
* feat: update list and detail memory page layouts
* onlyFavorites through drift
* rename to get all
* mobile: use widgetWhen in memory list page
* remove redundant check
* fix: e2e
---------
Co-authored-by: Timon <mail@timonrieger.de >
Co-authored-by: Jason Rasmussen <jason@rasm.me >
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-08-24 19:16:33 -05:00
Adam Gastineau
8dcfd36fa5
chore(mobile): move Drift into mobile/data ( #30966 )
...
* chore(mobile): move Drift into mobile/data
* Move into more structured subdirectories
* Fix changed merge paths
2026-08-25 00:51:02 +05:30
shenlong and shenlong-tanwen
2ea17db70c
chore: pump flutter to 3.47.1 ( #30962 )
...
* chore: pump flutter to 3.47.1
* analysis fixes
* changes from iOS build
* flutter get ui lib
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-08-25 00:45:50 +05:30
Yaros and shenlong
c98c20e963
fix(mobile): respect 24h system setting ( #30792 )
...
* fix(mobile): respect 24h system setting
* refactor: extract into utils
* chore: remove comment
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com >
* refactor: resolveAssetDateTime
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com >
* refactor: alwaysUse24HourFormat
* chore: impl suggestions
* refactor: less comments & resolveDateTimeLocale
---------
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com >
2026-08-23 17:51:03 +05:30
Yaros and Alex
44a9384758
fix: do not exit search screen on back during multiselect ( #30689 )
...
* fix: do not exit screen on back multiselect search
* chore: apply suggestion
Co-authored-by: Alex <alex.tran1502@gmail.com >
* refactor: fix in timeline widget
* chore(server): AssetOcrSyncReset.ts
* Revert "chore(server): AssetOcrSyncReset.ts"
This reverts commit c0647382cd63d046fee893ea0ee69503484d19f6.
* fix: test crash
* refactor: fix test instead of code workaround
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-08-23 12:19:52 +00:00
Santo Shakil
2237b28813
fix(mobile): permanently delete local copies when moving to the locked folder ( #29730 )
...
* permanently delete local copies when moving to the locked folder
* simplify the delete path and move the stubs into the mock defaults
* drop the kept count from the partial message and log the mismatch instead
2026-08-22 07:42:11 +05:30
shenlong and shenlong-tanwen
a36fb67736
chore: align icon and font size of bottom bar actions ( #30890 )
...
* chore: align icon and font size of bottom bar actions
* align base action font weight to immich ui weights
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-08-21 14:06:42 -05:00
Adam Gastineau
37e033a09d
chore(mobile): migrate remaining simple classes to Freezed ( #30907 )
2026-08-21 22:37:03 +05:30
shenlong and shenlong-tanwen
ea3fa92776
feat: actions undo handling ( #30481 )
...
* feat: actions undo handling
# Conflicts:
# mobile/lib/main.dart
* address pr reviews
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-08-19 00:06:57 +05:30
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
shenlong and shenlong-tanwen
ffc83eae36
chore: more dart lints ( #30665 )
...
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 and shenlong-tanwen
bd55f7e73a
chore: pump flutter_lints to 6.0 ( #30664 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-08-15 16:55:45 +05:30
shenlong and shenlong-tanwen
652ef8a427
refactor: server capabilities ( #30663 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-08-14 07:53:12 -05:00
Adam Gastineau
b82d480552
fix(mobile): prevent iOS status bar scroll to top during transitions ( #30717 )
2026-08-12 12:57:45 -07:00
shenlong and shenlong-tanwen
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 and shenlong-tanwen
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