Commit graph

169 commits

Author SHA1 Message Date
Peter Ombodi
3eb2bf0342 optimize, refactor code
remove redundant code and checking
getTrashedAssetsForAlbum for iOS
tests for hash trashed assets
2025-10-06 11:41:34 +03:00
Peter Ombodi
3839e72028 fix merge conflicts 2025-10-02 11:32:02 +03:00
Peter Ombodi
3cc3637862 Merge remote-tracking branch 'origin/main' into feature/sync_assets_trashed_state
# Conflicts:
#	mobile/drift_schemas/main/drift_schema_v12.json
#	mobile/lib/infrastructure/repositories/db.repository.dart
#	mobile/lib/infrastructure/repositories/db.repository.steps.dart
#	mobile/test/drift/main/generated/schema.dart
#	mobile/test/drift/main/generated/schema_v12.dart
2025-10-02 10:40:39 +03:00
shenlong
8f1bc7e821
fix: show un-hashed remainder assets (#22492)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-09-30 08:19:03 -05:00
shenlong
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
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
shenlong
7d8cd05bc2
fix: remote album timeline filter (#22423)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-09-26 17:35:46 +00:00
Mert
5116b215a2
fix(mobile): load local thumbnails in album timeline (#22329)
* join local asset in album query

* missed one

* formatting
2025-09-26 00:38:19 +05:30
Peter Ombodi
739f675c19 Merge remote-tracking branch 'origin/main' into feature/sync_assets_trashed_state 2025-09-25 13:14:02 +03:00
Peter Ombodi
cdfa7ccbff refactor code
remove unused model
2025-09-25 13:11:14 +03:00
Peter Ombodi
4b2b99942c refactor TrashedAsset model
fix missed data transfering
2025-09-24 18:57:31 +03:00
Peter Ombodi
ccc86d8440 refactor and format code 2025-09-24 18:07:24 +03:00
Peter Ombodi
bec1b30554 trashed_local_asset table mirror of local_asset table structure
trashed_local_asset<->local_asset transfer data on move to trash or restore
refactor code
2025-09-24 16:58:56 +03:00
Alex
7a0107fc79
feat: show preparing/hashing status in backup page (#22222)
* only show preparing information while hashing

* pr feedback

* use count

* use a single query for count

* use Mert's query
2025-09-21 14:34:19 -05:00
Peter Ombodi
b15056deb9 fix format 2025-09-19 18:30:41 +03:00
Peter Ombodi
a1fd3ef54a fix merge conflicts 2025-09-19 18:15:27 +03:00
Peter Ombodi
c00526d03a Merge remote-tracking branch 'origin/main' into feature/sync_assets_trashed_state
# Conflicts:
#	mobile/drift_schemas/main/drift_schema_v11.json
#	mobile/lib/infrastructure/repositories/db.repository.dart
#	mobile/lib/infrastructure/repositories/db.repository.steps.dart
#	mobile/test/drift/main/generated/schema_v11.dart
2025-09-19 18:02:16 +03:00
Peter Ombodi
55fe480cc1 Include trashed items in getMediaChanges
Process trashed items delta during incremental sync
2025-09-19 17:55:20 +03:00
Jason Rasmussen
86df09a0e4
fix(mobile): smaller search page size (#22210) 2025-09-19 10:11:11 -04:00
shenlong
e1e24f3d60
fix: sqlite parameters limit (#22119)
* fix isNotIns

* fix isIns

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-09-19 09:47:56 -04:00
Peter Ombodi
bd9e4871ec Merge remote-tracking branch 'origin/main' into feature/sync_assets_trashed_state
# Conflicts:
#	mobile/android/app/src/main/kotlin/app/alextran/immich/sync/Messages.g.kt
#	mobile/ios/Runner/Sync/Messages.g.swift
#	mobile/lib/domain/services/hash.service.dart
#	mobile/lib/domain/services/local_sync.service.dart
#	mobile/lib/platform/native_sync_api.g.dart
#	mobile/lib/providers/infrastructure/sync.provider.dart
#	mobile/pigeon/native_sync_api.dart
#	mobile/test/domain/services/hash_service_test.dart
2025-09-18 14:07:13 +03:00
Peter Ombodi
f7e5288173 rework trashed assets handling
- add new table trashed_local_asset
- mirror trashed assets data in trashed_local_asset.
- compute checksums for assets trashed out-of-app.
- restore assets present in trashed_local_asset and non-trashed in remote_asset.
- simplify moving-to-trash logic based on remote_asset events.
2025-09-18 13:55:56 +03:00
Mert
9ae42106cc
fix(mobile): stack row blocking gestures and not showing up (#21854) 2025-09-18 06:16:14 +00:00
shenlong
532ec10d5f
refactor: hashing service (#21997)
* download only backup selected assets

* android impl

* fix tests

* limit concurrent hashing to 16

* extension cleanup

* optimized hashing

* hash only selected albums

* remove concurrency limit

* address review comments

* log more info on failure

* add native cancellation

* small batch size on ios, large on android

* fix: get correct resources

* cleanup getResource

* ios better hash cancellation

* handle graceful cancellation android

* do not trigger multiple hashing ops

* ios: fix circular reference, improve cancellation

* kotlin: more cancellation checks

* no need to create result

* cancel previous task

* avoid race condition

* ensure cancellation gets called

* fix cancellation not happening

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-09-17 23:42:37 -05:00
Mert
b79a2eb6b9
chore(mobile): const platform checks (#21878)
* use `defaultTargetPlatform`

* extension

* formatting
2025-09-15 11:13:39 -04:00
shenlong
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
Alex
0166e99d90
chore: remove main timeline query watch throttle (#21942) 2025-09-14 02:09:07 -05:00
shenlong
7893ac25fb
fix: always use en locale for parsing timeline datetime (#21796)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-09-11 14:20:39 -05:00
Peter Ombodi
3d56a5ca9c Merge remote-tracking branch 'public/main' into feature/sync_assets_trashed_state
# Conflicts:
#	mobile/lib/infrastructure/repositories/local_asset.repository.dart
2025-09-11 12:37:56 +03:00
shenlong
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
Peter Ombodi
c1e9e48713 fix index creating on migration 2025-09-10 11:36:39 +03:00
Peter Ombodi
910ec79409 resolve merge conflicts 2025-09-09 19:13:36 +03:00
Peter Ombodi
a2f726e8e7 Merge remote-tracking branch 'public/main' into feature/sync_assets_trashed_state
# Conflicts:
#	mobile/drift_schemas/main/drift_schema_v10.json
#	mobile/lib/infrastructure/repositories/db.repository.dart
#	mobile/lib/infrastructure/repositories/db.repository.drift.dart
#	mobile/lib/infrastructure/repositories/db.repository.steps.dart
#	mobile/test/drift/main/generated/schema_v10.dart
2025-09-09 19:06:33 +03:00
Peter Ombodi
020dfa7818 feat(db): add local_trashed_asset table and integrate with restoration flow
- Add new `local_trashed_asset` table to store metadata of trashed assets
- Save trashed asset info into `local_trashed_asset` before deletion
- Use `local_trashed_asset` as source for asset restoration
- Implement file restoration by `mediaId`
2025-09-09 18:54:37 +03:00
Alex
59accbf32a
fix: prevent isolate deadlock (#21692) 2025-09-08 19:18:13 +00:00
shenlong
059a0e8aa8
feat: sync AuthUserV1 (#21565)
* feat: sync AuthUserV1

* migration

* chore: fix analyze

* fix user updatedAt check

* fix: auth user sync query

* generate sql

* bump schema version and update migration

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-09-08 14:00:10 -05:00
Peter Ombodi
57540f6259 Merge remote-tracking branch 'public/main' into feature/sync_assets_trashed_state
# Conflicts:
#	mobile/test/domain/services/sync_stream_service_test.dart
2025-09-08 17:58:30 +03:00
shenlong
fd4c2acde8
feat: handle SyncResetV1 (#20732)
* feat: handle SyncResetV1

* auto retry on reset and handle SyncCompleteV1

* fix tests

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-09-08 09:48:26 -05:00
Peter Ombodi
8888657b64 sync trash only for backup-selected assets 2025-09-08 17:38:42 +03:00
Peter Ombodi
c9da959ec2 fix format 2025-09-08 10:57:54 +03:00
Peter Ombodi
f7573ae317 Merge remote-tracking branch 'origin/main' into feature/sync_assets_trashed_state 2025-09-05 17:47:17 +03:00
Peter Ombodi
d8fb41e795 group local assets by checksum before moving to trash
delete LocalAssetEntity records when moved to trash
refactor code
2025-09-05 17:41:30 +03: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
Alex
2ef8d55cc8
Merge branch 'main' into feature/sync_assets_trashed_state 2025-09-02 21:24:46 -05:00
shenlong
674faf2e57
fix: local sync task never runs on iOS (#21491)
* fix: local sync task never runs on iOS

* chore: rename ios register method

* refactor from using dart callback to dart entrypoint + more logs

* check if file exists before hashing

* reschedule local sync task

* chore: rename background worker logger

* refactor: move file exists check inside repo

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-09-03 02:05:58 +05:30
Mert
303307e1ac
fix(mobile): memory lane query (#21422) 2025-08-29 19:33:58 -05:00
Peter Ombodi
bec675a420 Merge remote-tracking branch 'origin/main' into feature/sync_assets_trashed_state 2025-08-28 12:44:46 +03:00
Mert
a5841a8bf4
fix(mobile): memory lane rebuild (#21350)
* avoid unnecessary timeline rebuild

* add key

* handle disabled memories

* avoid rebuild if no memories
2025-08-27 21:16:41 -05:00
Yaros
204299d500
fix(mobile): user storage quota not showing (#21263) 2025-08-26 15:34:19 -05:00
Mert
e67265cef2
fix(mobile): caching thumbnails to disk (#21275) 2025-08-26 11:49:12 -04:00