Peter Ombodi
f4e275a257
Merge remote-tracking branch 'origin/main' into feature/gallery_app
...
# Conflicts:
# mobile/lib/infrastructure/entities/merged_asset.drift.dart
# mobile/lib/presentation/widgets/asset_viewer/asset_page.widget.dart
# mobile/lib/presentation/widgets/asset_viewer/asset_viewer.page.dart
# mobile/lib/presentation/widgets/asset_viewer/video_viewer.widget.dart
# mobile/makefile
2026-05-13 18:07:26 +03:00
shenlong
0a4ed6fd71
refactor: migrate viewer config to metadata table ( #28396 )
...
* refactor: app metadata
* refactor to per row store
* cleanup
* more test
* review changes
* more refactor
* refactor
* migrate primary color
* migrate dynamic theme
* migrate colorfulInterface
* cleanup providers
* migrate cleanup
* migrate mapconfig
* remove unused keys
* migrate timeline config
* migrate image config
* migrate viewer config
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-13 09:36:19 -05:00
Alex
6ca54ee722
feat: display more info in asset viewer ( #24630 )
...
* feat(mobile): more info for asset viewer
* feat(mobile): more info for asset viewer
2026-05-13 02:07:23 +00:00
shenlong
79801595db
refactor: move image config to metadata table ( #28228 )
...
* migrate image config
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-13 03:20:35 +05:30
Yaros
3e1c8aacb1
feat(mobile): trash/restore all ( #28116 )
...
* feat(mobile): trash/restore all
* chore: remove themeData variable
* chore: filter query by user
* refactor
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-05-12 14:56:19 -05:00
shenlong
91ac56cef2
refactor: move timeline config to metadata table ( #28227 )
...
* migrate timeline config
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-13 01:23:25 +05:30
shenlong
1932c60e1c
fix: kekab icon colors in light mode ( #28366 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-12 11:27:55 -05:00
shenlong
4d6a50c2cb
refactor: move map config to metadata table ( #28226 )
...
* refactor: app metadata
* refactor to per row store
* cleanup
* more test
* review changes
* more refactor
* refactor
* migrate primary color
* migrate dynamic theme
* migrate colorfulInterface
* cleanup providers
* migrate cleanup
* migrate mapconfig
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-11 22:43:52 -05:00
Ben Beckford
e142e3aca7
feat: recently added assets page ( #28272 )
...
* feat(server): add ordering date option to time buckets
* feat(web): add recently added page
* feat(server): recently created assets in explore data
* feat(web): recently added in explore tab
* fix: recently added assets ordering
* fix(server): failing bucket test
* feat(web): improve recently added preview
* chore: update e2e explore/timeline tests
* chore: rename and refactor timeline ordering dates
* fix(web): invalid timeline option
* feat(mobile): recently added page
* fix(server): sync tests
* fix(mobile): resync assets to get uploadedAt column
* chore: rename assetorderby enum
* chore(mobile): formatting
* minor fixes
* stylings
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-05-11 21:35:10 +00:00
shenlong
12f7b2a005
chore: add always_put_control_body_on_new_line lint ( #28352 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-05-11 13:47:24 -04:00
Yaros
41f285aa3e
feat(mobile): increased tap area on video player overlay ( #27269 )
...
* fix(mobile): improved tap area on video player
* fix: back button padding
* chore: use sizedbox.square & button padding
* chore: fixed padding
2026-05-09 10:47:41 +07:00
TheBestX11
fe2bf0c6dd
fix(mobile): correct filter default and UI desync in similar photos search ( #27516 )
...
* fix(mobile): view similar defaults to images only
* fix(mobile): reset filter chips when pre-filter is applied
---------
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com >
2026-05-07 15:22:35 +00:00
Luis Nachtigall
7f43c6a3a3
fix(mobile): prevent asset loading issues when changing page or when closing memories ( #27596 )
2026-05-07 09:13:22 -04:00
Thomas
f09769a2f3
chore(mobile): add box shadow to asset details ( #27510 )
...
The details widget can blend with the image when they are similar
colours.
2026-05-06 19:43:55 +00:00
Ben Beckford
0058df798d
fix(mobile): show lens info without lens name ( #28234 )
...
* fix(mobile): always display lens subtitle
* fix(mobile): hide empty lens subtitles
2026-05-05 10:46:09 +07:00
Peter Ombodi
b74cfd4424
fix(mobile): suppress asset stack UI in trash timeline ( #26536 )
...
* fix(mobile): suppress asset stack UI in trash timeline
* refactor(mobile): apply review suggestions
* fix(mobile): hide unstack action in the trash timeline
* fix(mobile): move stack indicator out of asset type icons
---------
Co-authored-by: Peter Ombodi <peter.ombodi@gmail.com >
2026-04-29 17:49:47 +07:00
Peter Ombodi
eee3d2ce61
fix(mobile): avoid double pop when canceling upload dialog
2026-04-27 16:02:19 +03:00
Peter Ombodi
d96cb8d386
Merge remote-tracking branch 'origin/main' into feature/gallery_app
2026-04-27 13:03:53 +03:00
Peter Ombodi
2c9639f18b
fix(mobile): wait for main timeline before deferred view intent handoff
2026-04-27 13:02:01 +03:00
Yaros
39cfad7136
feat(mobile): action bottom sheet on map timeline ( #27515 )
2026-04-24 09:30:10 -05:00
Peter Ombodi
880155916f
refactor(mobile): share AssetViewer pre-navigation state preparation
2026-04-23 17:15:19 +03:00
Peter Ombodi
84854a8575
fix(mobile): stabilize Android view intent asset resolution and fallback viewer
2026-04-23 16:10:17 +03:00
Alex
03b70cf029
fix: jump to timeline on new auto_router update ( #28022 )
2026-04-22 10:21:48 -05:00
Peter Ombodi
0276e86895
Merge remote-tracking branch 'origin/main' into feature/gallery_app
...
# Conflicts:
# mobile/android/app/src/main/kotlin/app/alextran/immich/sync/Messages.g.kt
# mobile/ios/Runner/Sync/Messages.g.swift
# mobile/lib/infrastructure/entities/merged_asset.drift.dart
# mobile/lib/platform/native_sync_api.g.dart
2026-04-22 13:46:14 +03:00
Peter Ombodi
90d9d0075a
refactor(mobile): use remote asset ids for view intent handoff and simplify resolver
2026-04-22 13:37:42 +03:00
Luis Nachtigall
793a7054fb
fix(mobile): thumbnail transition to asset viewer ( #27850 )
2026-04-21 15:54:40 -05:00
Luis Nachtigall
3a874dd441
fix(mobile): enable autoplay for motion photos in video viewer ( #27961 )
2026-04-21 15:53:21 -05:00
Peter Ombodi
6b7b029562
fix(mobile): hand off deep-link viewer to main timeline after upload
...
Add MainTimelineHandoffCoordinator to switch the asset viewer to the main timeline once a view-intent asset is uploaded and becomes available, and guard viewer reload/navigation transitions to avoid race conditions and crashes.
2026-04-21 19:00:24 +03:00
Luis Nachtigall
539a39ae49
refactor(mobile): Migrate durationInSeconds to durationMs ( #26615 )
2026-04-20 23:28:11 -04:00
shenlong
fd5e8d6521
chore: pump auto_route ( #27876 )
...
* chore: pump auto_route
* make build
* chore: use drift from pubdev (#27877 )
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-04-17 20:28:36 +00:00
Peter Ombodi
80c9796abe
Merge remote-tracking branch 'origin/main' into feature/gallery_app
2026-04-17 18:42:28 +03:00
shenlong
2070f775d6
refactor: remove riverpod generator ( #27874 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-04-17 20:01:44 +05:30
Peter Ombodi
275c324e8d
Merge remote-tracking branch 'origin/main' into feature/gallery_app
...
# Conflicts:
# mobile/android/app/src/main/kotlin/app/alextran/immich/BackgroundServicePlugin.kt
# mobile/android/app/src/main/kotlin/app/alextran/immich/MainActivity.kt
# mobile/lib/main.dart
2026-04-17 16:29:59 +03:00
Peter Ombodi
4354431327
refactor(mobile): move deferred view intents into providers, split view-intent providers, and clean up ACTION_VIEW handling
2026-04-17 16:21:22 +03:00
Peter Ombodi
b3b0b0f576
refactor(mobile): simplify view intent flow and support file-backed ACTION_VIEW assets
...
remove redundant view intent model/repository layer
handle transient ACTION_VIEW files in viewer/upload flow
clean up managed temp files for fallback assets
2026-04-16 14:34:08 +03:00
shenlong
79fccdbee0
refactor: yeet old timeline ( #27666 )
...
* refactor: yank old timeline
# Conflicts:
# mobile/lib/presentation/pages/editing/drift_edit.page.dart
# mobile/lib/providers/websocket.provider.dart
# mobile/lib/routing/router.dart
* more cleanup
* remove native code
* chore: bump sqlite-data version
* remove old background tasks from BGTaskSchedulerPermittedIdentifiers
* rebase
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-04-15 23:00:27 +05:30
Brandon Wees
6dd6053222
feat: mobile editing ( #25397 )
...
* feat: mobile editing
fix: openapi patch
this sucks :pepehands:
chore: migrate some changes from the filtering PR
chore: color tweak
fix: hide edit button on server versions
chore: translation
* chore: code review changes
chore: code review
* sealed class
* const constant
* enum
* concurrent queries
* chore: major cleanup to use riverpod provider
* fix: aspect ratio selection
* chore: typesafe websocket event parsing
* fix: wrong disable state for save button
* chore: remove isCancelled shim
* chore: cleanup postframe callback usage
* chore: clean import
---------
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
2026-04-15 09:26:40 -05:00
Yaros
3b47ca1c37
fix(mobile): add keys for person tiles in search ( #27689 )
...
* fix(mobile): key for person tiles in search
* chore: add key to avatar
* chore: use simple personId
* chore: rename key in person page
2026-04-14 10:05:09 -05:00
Luis Nachtigall
d39e7da10d
fix(mobile): fix flutter cache eviction on thumbnails ( #27663 )
...
* fix: add markFinished parameter to loadRequest and loadCodecRequest methods
* update loadRequest and loadCodecRequest methods to use isFinal
* Apply suggestions from code review
Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com >
* remove redundant check
* fix: ensure isFinished is set correctly during cache eviction
* formatting
---------
Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com >
2026-04-10 10:28:55 -05:00
Luis Nachtigall
2b0f6c9202
fix(mobile): improve image load cancellation handling ( #27624 )
...
fix(image): improve image load cancellation handling
2026-04-08 17:23:42 -04:00
Thomas
fbe631fe91
fix(mobile): convert video controls from hook to stateful widget ( #27514 )
...
We are generally looking to move away from hooks as they are hard to
reason about and have weird bugs. In particular, the timer did not
properly capture the ref of the callback, and so it would execute on old
state. A standard stateful widget does not have this problem, and is
easier to organise.
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-04-06 10:13:45 -05:00
Putu Prema
2143a0c935
fix(mobile): transparent system navbar when trash bottom bar is visible ( #27093 )
...
* disable bottom safe area on trash bottom bar so that it extends below the system nav bar
* remove manual padding calculations
* re-add static vertical padding to maintain previous bottom bar height
2026-04-06 09:28:07 -05:00
Thomas
776b9cbad5
fix(mobile): use key on video controls ( #27512 )
...
The widget is not recreated correctly when videoPlayName changes, which
can cause weird behaviour with hooks and timers (like timers not firing
when they should do). Using a key forces flutter to recreate the widget
properly and allow the assumptions in build to work correctly.
2026-04-04 21:54:34 -05:00
Thomas
960be0c27a
fix(mobile): don't update search filters in-place ( #26965 )
...
* fix(mobile): don't update search filters in-place
Search filters are currently modified in-place, which can feel quite
janky. The chips behind the bottom sheet update instantly, and the
search page gets confused because filters have been applied but no
search has been initiated. Filters should keep their own copy of the
filter when they're opened, and the commit + search on apply.
The previous filter and pre-filter concepts were also cleaned up. They
added complexity, and `search()` now owns the full life cycle of the
filter.
This now also reverts the changes from #27155 , as this solution should
be cleaner.
* refactor & color tweak
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-04-04 22:53:03 +00:00
Thomas
bcc29903de
chore(mobile): persist video controls visibility when swiping ( #26986 )
...
At current, the controls for videos are always hidden when opening an
asset from the timeline, and when swiping between assets. The latter is
actually quite annoying, so it would be better UX if video controls were
hidden when opening from the timeline like before, but visibility of the
controls was retained when swiping between assets.
2026-04-04 16:11:59 -05:00
Yaros
6b1dd6f680
fix(mobile): favorite button not updating state ( #27271 )
2026-03-30 21:24:56 -05:00
Luis Nachtigall
306a3b8c7f
fix(mobile): images loads sometimes cancel too early ( #27067 )
...
* refactor listener tracking for image stream completers and fix early cancel call
* fix: improve cache listener identification in image stream tracking
* add documentation and test cases for listener tracking in ImageStreamCompleter
* fix: remove unnecessary image provision flag from listener tracking
* fix: override setImage method in cache aware listener tracker mixin
* fix: rename test file
2026-03-27 10:35:50 -04:00
Yaros
c13fd9e4b5
fix(mobile): video icon not showing on memories ( #27311 )
2026-03-27 09:11:02 -05:00
Thomas
8724848fce
chore(mobile): reduce spacing on video controls ( #27313 )
...
The spacing was required for the old slider, but the new one has its own
spacing and makes it redundant. There is too much now, and we've
received feedback that it should be less sparse. The default track
height of 16px is an improvement over the old track height, but it is
very thick. A middleground of 12px might be better.
2026-03-27 09:10:19 -05:00
Yaros
0e93aa74cf
fix(mobile): add keys to people list ( #27112 )
...
mobile(fix): add keys to people list
2026-03-23 10:50:56 -05:00