Commit graph

179 commits

Author SHA1 Message Date
Peter Ombodi
df0ed1e8da remove trashed asset model
remove trash_sync.service
refactor DriftTrashedLocalAssetRepository, LocalSyncService
2025-10-07 18:24:57 +03:00
Peter Ombodi
ebfab4b01b sync_stream.service depend on repos
refactor assets restoration
update dependencies in tests
2025-10-07 14:18:45 +03:00
Peter Ombodi
ca43c7907e format code 2025-10-06 18:58:02 +03:00
Peter Ombodi
25376e38dd Merge remote-tracking branch 'origin/main' into feature/sync_assets_trashed_state 2025-10-06 18:33:03 +03:00
Peter Ombodi
44ec7744ba reuse exist checksums on trash data update
handle restoration errors
fix import
2025-10-06 18:28:31 +03:00
Peter Ombodi
172102c438 fix generated file 2025-10-06 16:39:54 +03:00
Peter Ombodi
dd2a5b99ba fix migration
fix tests
2025-10-06 16:06:10 +03:00
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
shenlong
60b1faac0f
chore: clean auth-user entity on reset (#22583)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-10-02 22:48:17 -05:00
Alex
ca8a6e5f95
fix: show activity in shared albunm (#22589) 2025-10-02 11:25:40 -05:00
shenlong
a2b25b7a74
fix: show only owned assets in places and map (#22585)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-10-02 10:41:14 -05: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