Romo and shenlong-tanwen
bcea64875f
fix: image and video download complete notification shows "file_name" ( #25975 )
...
* fix: image and video download complete notification shows "file_name"
* fix lint
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-02-07 02:56:14 +00:00
Romo and shenlong-tanwen
1b3c0e4f65
fix: image download complete notification shows an extra {file_name} template tag ( #25936 )
...
* [fix] Image download complete notification shows an extra {file_name} template tag
fixes https://github.com/immich-app/immich/issues/25690
added
```dart
final FileName = 'file_name'.t( args: {'file_name': '{filename}', }, );
```
* chore: fix formatting
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-02-05 19:19:33 +00:00
Mert and shenlong
27a2808470
fix(mobile): mtls on native clients ( #25802 )
...
* handle mtls on ios
* update android impl
* ui improvements
* dead code
* no need to store data separately
* improve concurrency
* dead code
* add migration
* remove unused dependency
* trust user-installed certs
* removed print statement
* fix ios
* improve android styling
* outdated comments
* update lock file
* handle translation
* fix prompt cancellation
* fix video playback
* Apply suggestion from @shenlong-tanwen
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com >
* Apply suggestion from @shenlong-tanwen
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com >
* formatting
---------
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com >
2026-02-05 17:42:53 +00:00
Mert
ba2dfa7df6
refactor(mobile): consolidate image requests ( #25743 )
...
remote url image provider
remove cached_network_image
formatting
linting
remove thumb provider
formatting
2026-02-05 12:16:42 -05:00
Alex and bwees
0beb1f9e7a
fix: width and height migration issue ( #25643 )
...
* fix: width and height migration issue
* chore: sync stream migration tests
* lint and test
---------
Co-authored-by: bwees <brandonwees@gmail.com >
2026-01-28 15:14:50 -06:00
Mert and Alex
1803692eab
feat(mobile): native clients ( #21459 )
...
* platform clients
* uppercase http method
* fix hot reload
* custom user agent
* init before app launch
* set defaults
* move to bootstrap
* unrelated change
* disable disk cache by default
* optimized decoding
* remove incremental
* android impl
* memory optimization
* lock approach is slower on ios
* conditional cronet
* clarify parameter
* enable disk cache
* set user agent
* flutter-side decode
* optimized http
* fixed locking
* refactor
* potential race conditions
* embedded cronet
* refactor, fix capacity handling
* fast path for known content length
* ios optimizations
* re-enable cache
* formatting
* bump concurrency
* clear cache button
* fix eviction race condition
* add extra cancellation check
* tighten dispose
* better error handling
* fix disposal
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-01-24 19:34:29 +00:00
Brandon Wees
c2775894e1
fix(mobile): backfill asset dimensions to exif table ( #25483 )
2026-01-24 01:23:46 +00:00
Brandon Wees and mertalev
1b56bb84f9
fix: mobile edit handling ( #25315 )
...
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com >
2026-01-19 12:22:53 -06:00
Daniel Dietzler and bwees
07675a2de4
feat: download original asset ( #25302 )
...
Co-authored-by: bwees <brandonwees@gmail.com >
2026-01-16 19:05:13 +00:00
Alex and shenlong-tanwen
e4443fa43e
chore: dart http foreground upload ( #24883 )
...
* feat: bring back manual backup
* expose iCloud retrieval progress
* wip
* unify http upload method, check for connectivity on iOS
* handle LivePhotos progress
* feat: speed calculation
* wip
* better upload detail page
* handle error
* handle error
* pr feedback
* feat: share intent upload
* feat: manual upload
* feat: manual upload progress
* chore: styling
* refactor
* refactor
* remove unused logs
* fix: background android backup
* feat: add error section
* remove complete section
* remove empty state and prevent slot jumps
* more refactor
* fix: background test
* chore: add metadata to foreground upload
* fix: email and name get reset in auth provider
* pr feedback
* remove version check for metadata field in upload payload
* chore: fix unit test
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-01-15 20:10:08 -06:00
Brandon Wees
e8c80d88a5
feat: image editing ( #24155 )
2026-01-09 17:59:52 -05:00
Alex
30b90f9baa
fix: propagate iCloud Shared Album flag ( #25060 )
...
* fix: propagate iCloud Shared Album flag
* chore: add migration
2026-01-06 19:46:25 -06:00
idubnori and Alex
b10a8baf53
feat(mobile): move buttons in the bottom sheet to the kebabu menu ( #24175 )
...
* refactor: remove bottom sheet buttons
* feat: add iconOnly and menuItem parameters to action buttons
* feat: enhance action button context and kebab menu integration
* feat: use ActionButtonContext
* fix: add missing options in some cases
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-12-15 16:44:27 -06:00
idubnori and Alex
7af99b8606
feat(mobile): move top bar buttons into kebabu menu in AssetViewer ( #24461 )
...
* chore(mobile): i18n: "open_asset_info" in viewer kebab menu
* feat(mobile): move some top buttons into kebabu menu
* refactor(mobile): viewer kebab menu to use context-based button generation
* feat(mobile): refactor action button and kebab menu to use ConsumerWidget for improved state management
* feat(mobile): pass original theme to ViewerKebabMenu for consistent styling
* chore: styling
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-12-09 18:26:28 +00:00
shenlong and shenlong-tanwen
bbba1bfe8c
fix: use adjustment time in iOS for hash reset ( #24047 )
...
* use adjustment time in iOS for hash reset
* migration
* fix equals check
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-12-03 21:15:58 -06:00
Hai Sullivan and Alex
b11aecd184
fix(mobile): use correct timezone displayed in the info sheet ( #24310 )
...
* fixed the timezone issue in the Immich mobile app's metadata sheet to match the web app's behavior
* format dart
* now uses the shared applyTimezoneOffset() utility function from mobile/lib/utils/timezone.dart
* add tests
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-12-02 16:37:19 +00:00
Yaros
a32f450059
feat(mobile): persist album sorting & layout in settings ( #22133 )
...
* fix(mobile): persist album sorting in settings
* fix(mobile): persist album layout
* fix: fixed store model id
* fix: corrupted AppSettingsEnum
* chore: refactor to remove RemoteAlbumSortMode
* refactor: use t instead of tr
2025-12-01 20:51:35 -06:00
shenlong and shenlong-tanwen
24e5dabb51
fix: use proper updatedAt value in local assets ( #24137 )
...
* fix: incorrect updatedAt value in local assets
* add test
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-11-24 09:49:27 -06:00
shenlong and shenlong-tanwen
38d4d1a573
chore: reset remote sync on app update ( #23969 )
...
reset remote sync on update
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-11-19 02:55:01 +00:00
shenlong and shenlong-tanwen
da5a72f6de
chore: patch MemoriesResponse ( #23764 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-11-10 11:37:45 -06:00
Brandon Wees
1e4779cf48
fix(mobile): ignore patch releases for app version alerts ( #23565 )
...
* fix(mobile): ignore patch releases for app version alerts
* chore: make difference type nullable to indicate when versions match
* chore: add error handling for semver parsing
* chore: tests
2025-11-03 21:09:32 -06:00
Alex
c69786b039
fix: button condition rendering ( #23400 )
2025-10-31 08:42:01 -05:00
Alex
1a2e7d06cb
chore: make view similar photo button more discoverable ( #23350 )
2025-10-29 15:38:50 +00:00
Viktor Mykhailiv and shenlong-tanwen
12bb39a111
feat(mobile): view similar photos ( #22148 )
...
* feat: view similar photos on mobile
# Conflicts:
# mobile/lib/models/search/search_filter.model.dart
# mobile/lib/utils/action_button.utils.dart
* fix: bottom sheet is unusable after navigating to search
* feat(mobile): open DriftSearchPage as root route
* reset search state on tab navigation
* fix tests
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-10-28 16:17:26 -05:00
Alex
106effca2e
feat: check server feature to render OCR search option ( #23325 )
2025-10-28 13:54:41 -05:00
shenlong and shenlong-tanwen
ac0d646401
fix: mobile unawaited_futures lint ( #21661 )
...
* chore: add unawaited_futures lint as warning
# Conflicts:
# mobile/analysis_options.yaml
* remove unused dcm lints
They will be added back later on a case by case basis
* fix warning
# Conflicts:
# mobile/lib/presentation/pages/drift_remote_album.page.dart
* auto gen file
* review changes
* conflict resolution
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-10-27 09:32:52 -05:00
Alex and shenlong-tanwen
f4969694cd
fix: isolate freeze app on older ios device ( #22509 )
...
* fix: isolate freeze app on older ios device
* always use at-least 5 isolates
* fix: bad merge
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-10-22 12:43:03 -05:00
Brandon Wees
efac8c6667
fix: semver parser grab everything before hyphen ( #23140 )
...
used for versions like 2.1.0-DEBUG
2025-10-22 10:06:40 -05:00
Brandon Wees and Alex
23a34bee6f
feat: improved update messaging on app bar server info ( #22938 )
...
* feat: improved update messaging on app bar server info
* chore: message improvements
* chore: failed to fetch version error message
* feat: open latest release when tapping "Update" on server out of date message
* fix: text alignment states
* chore: code review updates
* Apply suggestion from @alextran1502
Co-authored-by: Alex <alex.tran1502@gmail.com >
* Apply suggestion from @alextran1502
Co-authored-by: Alex <alex.tran1502@gmail.com >
* chore: lots of rework of the version checking code to be cleaner
Added a semver utility class to simplify comparisons, broke the update notification logic into own widget, reworked view construction and colors.
* fix: show warnign without having to tap on app bar icon
* chore: colors
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-10-20 21:13:31 +00:00
Brandon Wees
24fe62ff9d
chore: rework backup success notification descriptions ( #23024 )
...
* chore: rework backup success notification descriptions
* chore: use static text until for completion description
2025-10-20 09:56:48 -05:00
shenlong and shenlong-tanwen
ee3c07d049
fix: process upload only after successful remote sync ( #22360 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-09-29 10:10:00 -05:00
shenlong and shenlong-tanwen
fea5e6783c
fix: merged timeline orderby localtime ( #22371 )
...
* chore: refactor dateFmt to truncateDate
* fix: merged timeline orderby localtime
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-09-29 09:53:40 -05:00
8de7eed940
feat(mobile): add unstack button ( #21869 )
...
* fix: add unstack button
* feat: allow unstacking inside of asset viewer
* chore: update tests
* chore: rework unstacking in asset viewer
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: bwees <brandonwees@gmail.com >
2025-09-28 06:51:38 +05:30
shenlong
d4b110fc47
fix: migrate backup delay from old timeline ( #22327 )
2025-09-23 09:55:35 -05:00
shenlong and shenlong-tanwen
0e987352bb
fix: do not migrate existing users ( #22146 )
...
fix: do not migrate if already on 15+
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-09-17 13:20:43 -05:00
shenlong and shenlong-tanwen
53c67f4d71
fix: show delete on device when asset has a local match ( #22143 )
...
* fix: show delete on device when asset has a local match
* change test description
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-09-17 21:48:54 +05:30
shenlong and shenlong-tanwen
2e945281fc
fix: beta migration check ( #22092 )
...
fix: beta migration
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-09-17 08:45:04 -05:00
shenlong and shenlong-tanwen
dcee34095b
fix: reset sqlite on beta migration ( #20735 )
...
reset sync stream on migration
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-09-14 16:30:25 -05:00
b26b452530
fix: do not listen for store updates in isolates ( #21947 )
...
* dispose store on isolate cleanup
* do not listen for store updates in isolates
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-09-14 14:50:17 -05:00
Alex
71e33e35dc
chore: check before sync linked albums from websocket events ( #21941 )
2025-09-14 02:08:41 -05:00
Mert
17bbcdf584
chore(mobile): add debugPrint lint rule ( #21872 )
...
* add lint rule
* update usages
* stragglers
* use dcm
* formatting
* test ci
* Revert "test ci"
This reverts commit 8f864c4e4d3a7ec1a7e820b1afb3e801f2e82bc5.
* revert whitespace change
2025-09-12 18:56:00 -04:00
Alex
42a03f2556
fix: concurrency issue ( #21830 )
2025-09-11 19:02:03 +00:00
Alex
2d2673c114
fix: repeat timeline migration for first time user ( #21794 )
2025-09-10 16:27:00 -05:00
Alex
56e5236a39
chore: clean up background tasks ( #21785 )
2025-09-10 16:17:37 -05:00
Alex
2c7b980eed
chore: make beta timeline the default ( #21751 )
...
* chore: make beta timeline the default
* fix: logic
* awaiting
* refactor
2025-09-10 12:11:46 -05:00
shenlong and shenlong-tanwen
67a8cab286
feat: resurrect advanced info ( #21633 )
...
* feat: resurrect advanced info
* display null values as well
* add exif details
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-09-10 08:38:53 -05:00
Alex
bcfb5bee1f
feat: album info sync ( #21103 )
...
* wip
* album creation
* fix: album api repository no invalidating after logging out
* add linkedRemoteAlbumId column and migration
* link/unlink remote album
* logic to find and add new assets to album
* pr feedback
* add toggle option to backup option page
* refactor: provider > service
* rename
* Handle page pop manually
* UI feedback for user creation and sync linked album
* uncomment migration
* remove unused method
2025-09-04 18:44:10 +00:00
Brandon Wees
bf6211776f
fix: retain filter and sort options when pulling to refresh ( #21452 )
...
* fix: retain filter and sort options when pulling to refresh
* chore: use classes to manage state
* chore: format
* chore: refactor to keep local state of filter/sorted albums instead of a global filteredAlbums
* fix: keep sort when page is navigated away and returned
* chore: lint
* chore: format
why is autoformat not working
* fix: default sort direction state
* fix: search clears sorting
we have to cache our sorted albums since sorting is very computationally expensive and cannot be run on every keystroke. For searches, instead of pulling from the list of albums, we now pull from the cached sorted list and then filter which is then shown to the user
2025-09-04 09:08:17 -05:00
shenlong and shenlong-tanwen
ec2f94cae8
fix: handle datetime outside the valid range supported by dart ( #21526 )
...
* fix: handle datetime outside the valid range supported by dart
* add tests for tryFromSecondsSinceEpoch
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-09-02 14:20:49 -05:00
0df88fc22b
feat: beta background sync ( #21243 )
...
* feat: ios background sync
# Conflicts:
# mobile/ios/Runner/Info.plist
* feat: Android sync
* add local sync worker and rename stuff
* group upload notifications
* uncomment onresume beta handling
* rename methods
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-08-28 14:11:54 +00:00