Mert
a05c8c6087
feat(mobile): use shared native client ( #25942 )
...
* use shared client in dart
fix android
* websocket integration
platform-side headers
update comment
consistent platform check
tweak websocket handling
support streaming
* redundant logging
* fix proguard
* formatting
* handle onProgress
* support videos on ios
* inline return
* improved ios impl
* cleanup
* sync stopForegroundBackup
* voidify
* future already completed
* stream request on android
* outdated ios ws code
* use `choosePrivateKeyAlias`
* return result
* formatting
* update tests
* redundant check
* handle custom headers
* move completer outside of state
* persist auth
* dispose old socket
* use group id for cookies
* redundant headers
* cache global ref
* handle network switching
* handle basic auth
* apply custom headers immediately
* video player update
* fix
* persist url
* potential logout fix
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-03-05 11:04:45 -06:00
shenlong
177d1c9a30
feat: splash screen error page ( #26460 )
...
* feat: splash screen error page
* Update mobile/lib/pages/common/splash_screen.page.dart
Co-authored-by: Alex <alex.tran1502@gmail.com >
* add clear data action
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-02-26 16:47:28 +00:00
shenlong
675bbf3ac3
chore: remove unused key and fix casing for recent_albums ( #24691 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2026-02-12 16:06:22 +01:00
Thomas
c3730c8eab
chore(mobile): enable high refresh rate in debug builds ( #26085 )
...
I'm testing changes to animations and app performance, and noticed it
felt quite sluggish on a 120hz display. It turns out that high refresh
is disabled in debug builds. It's probably a good idea to enable it so
that it more closely mirrors the production build.
2026-02-10 03:51:33 +00:00
Alex
10b2bf7970
fix: iOS slow start ( #26043 )
2026-02-08 16:28:51 -06:00
Mert
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
shenlong
da248414af
refactor(mobile): form & form field ( #25042 )
...
* refactor: form & form field
* chore: remove unused components
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
2026-01-09 09:26:36 -06:00
shenlong
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
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
shenlong
8ee495b08f
fix: promote to foreground service before starting engine ( #22517 )
...
fix: show notification from native
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-10-07 08:49:43 -05:00
shenlong
35b62cd016
fix: prevent background worker when main app is running ( #22252 )
...
* fix: prevent background worker only when the main app is actively running
* handle ref disposals better
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-09-21 20:45:47 -05:00
Mert
a122d4b969
fix(mobile): double hero animation ( #21927 )
...
fix double hero animation
2025-09-13 16:47:07 -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 8f864c4e4d .
* 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
shenlong
722a464e23
fix: android background backups ( #21795 )
...
* upload using dart client
* add connectivity api
* respect backup network setting
* comment as to why we need to wait for setForegroundAsync call
* log assets skipped due to network constraint
* dynamic spawning -> false
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-09-11 12:01:15 -05:00
shenlong
e239b8d2fa
fix: android crash on app pause ( #21768 )
...
* revert service locks
* rename backgroundWorkerFgServiceProvider
* refactor: parallel background worker init (#21769 )
* refactor: parallel background worker init
* fix: hashing not running from the background engine (#21773 )
* init and dispose workmanager from background engine
* log message contend
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-09-10 17:15:42 +00:00
shenlong
9d3f10372d
refactor: simplify background worker ( #21558 )
...
* chore: log hash starting
* chore: android - bump the min worker delay
* remove local sync only task and always enqueue background workers
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-09-03 09:57:30 -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
873f7921da
fix(mobile): ensure current asset is set in asset viewer ( #21504 )
2025-09-02 11:03:44 -04:00
shenlong
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
shenlong
6f4f79d8cc
feat: migrate store to sqlite ( #21078 )
...
* add store entity and migration
* make store service take both isar and drift repos
* migrate and switch store on beta timeline state change
* chore: make drift variables final
* dispose old store before switching repos
* use store to update values for beta timeline
* change log service to use the proper store
* migrate store when beta already enabled
* use isar repository to check beta timeline in store service
* remove unused update method from store repo
* dispose after create
* change watchAll signature in store repo
* fix test
* rename init isar to initDB
* request user to close and reopen on beta migration
* fix tests
* handle empty version in migration
* wait for cache to be populated after migration
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-08-21 14:58:50 -05:00
Alex
0e7816130b
chore: use foreground service for uploading large file on Android ( #21095 )
...
* chore: use foreground service for uploading large file on Android
* Update main.dart
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com >
* Update mobile/lib/main.dart
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com >
---------
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com >
2025-08-20 22:59:24 +05:30
shenlong
9c8c52874a
fix: cleanup logger DB in isolates ( #20730 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-08-06 16:57:17 -05:00
Brandon Wees
4d0c9172e5
fix: not clearing local data when logging out while sync is running ( #20646 )
2025-08-04 17:14:26 -05:00
Alex
10e9c278ee
feat: network requirement option for upload ( #20302 )
...
* wifi toggle
* feat: network requirement option for upload
* chore: put back holding queue previous config numbers
* options
* backup option page
* pr feedback
2025-07-30 22:13:20 +05:30
shenlong
e52b9d15b5
chore: bump dart sdk to 3.8 ( #20355 )
...
* chore: bump dart sdk to 3.8
* chore: make build
* make pigeon
* chore: format files
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-07-28 14:04:03 -05:00
Alex
03a13828e1
chore: refactor upload service ( #20130 )
...
* chore: refactor upload service
* fix: cancel upload queue on logout (#20131 )
* fix: cancel upload on logout
* fix: test
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
---------
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com >
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-07-25 10:09:32 -05:00
shenlong
ad65e9011a
chore: bump line length to 120 ( #20191 )
2025-07-25 02:37:22 +00:00
Alex
1a35a01149
feat: drift manual upload ( #20101 )
2025-07-23 09:20:52 -05:00
Alex
c7853fbe9d
chore: refactor download group ( #20099 )
2025-07-23 04:21:58 +00:00
Alex
4d27f187ea
feat: new upload (cont) ( #20029 )
...
* new upload button
* wip
* pr feedback
* fix: updateAll override album selection value
* feat: status box
* feat: handle upload resume
* re-enable websocket event
* fix: update state condition and upload status
* Better backup detail page
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-07-21 15:30:51 -05:00
Alex
fafb88d31c
feat(mobile): new upload ( #18726 )
2025-07-19 04:58:53 +00:00
shenlong
bfceed15da
feat: add license page to app bar dialog ( #19971 )
...
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-07-16 09:36:17 -05:00
shenlong
7d8f56b483
chore: hero animations ( #19860 )
...
* remove herocontrollerscope
* handle heroOffset in new timeline
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-07-10 20:25:18 +00:00
Brandon Wees
d178c52ba6
fix: cold start deep link logic ( #19859 )
2025-07-10 14:27:42 -05:00
Brandon Wees
7d0e8f50f7
feat(mobile): deep links ( #19232 )
...
* add deep linking on ios app
* add deeplinking to android
* code review fixes
* lint
* cleanly handle malformed URIs when launching app
* refactor deep link builder/service, still have bug with navigation stack not containing TabControllerRoute
* fix: tab controller insertion conditions
* add my.immich.app app linking
* chore: remove one-liner if statement
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-06-24 09:20:24 -05:00
Andreas Tollkötter
b890440f6b
feat(mobile): enabled DCM ( #17957 )
...
* enable DCM in CI
* chore: up version
* chore: up version
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-06-09 11:09:02 -05:00
Thien Dang
2572413b2b
fix(mobile): fix nested MaterialApp ( #18998 )
...
* fix nested MaterialApp
* chore
---------
Co-authored-by: dvbthien <dvbthien@gmail.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-06-09 15:15:31 +00:00
shenlong
ce6631f7e0
feat(mobile): hash assets in isolate ( #18924 )
2025-06-06 11:23:05 +05:30
Thien Dang
a53d033622
fix(mobile): notification, dialog that don't translate properly ( #18827 )
...
* Fix notification, dialog that don't translate properly
* use localeProvider to re-build
---------
Co-authored-by: dvbthien <dvbthien@gmail.com >
2025-06-01 21:03:22 -05:00
Alex
fe71894308
feat: locked view mobile ( #18316 )
...
* feat: locked/private view
* feat: locked/private view
* feat: mobile lock/private view
* feat: mobile lock/private view
* merge main
* pr feedback
* pr feedback
* bottom sheet sizing
* always lock when navigating away
2025-05-20 13:35:22 +00:00
Robert Vollmer
f75d853e9a
fix(mobile): Remote video playback and asset download on Android with mTLS ( #16403 )
...
* Add class to apply SSL options
* Apply client certificate for native Android code
* Refactor self-signed check
* Allow self-signed certificates
* Fix Dart analysis
* Add HostnameVerifier
Android explicitly does NOT check the Common Name of a certificate,
only the Subject Alt Names. Chances are that someone who self-signs a
certificate doesn't go through the extra steps to add a SAN, and in
that case the connection would be prevented by the HostnameVerifier
even thought the TrustManager was fine with the certificate itself.
* Rename parameter like in Dart
* Fix NPE
* Catch all native errors in HttpSSLOptionsPlugin
* Workaround for too early onChanged() callback
* Fix formatting
---------
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-05-08 13:45:11 +00:00
shenlong
81ed54aa61
feat: user sync stream ( #16862 )
...
* refactor: user entity
* chore: rebase fixes
* refactor: remove int user Id
* refactor: migrate store userId from int to string
* refactor: rename uid to id
* feat: drift
* pr feedback
* refactor: move common overrides to mixin
* refactor: remove int user Id
* refactor: migrate store userId from int to string
* refactor: rename uid to id
* feat: user & partner sync stream
* pr changes
* refactor: sync service and add tests
* chore: remove generated change
* chore: move sync model
* rebase: convert string ids to byte uuids
* rebase
* add processing logs
* batch db calls
* rewrite isolate manager
* rewrite with worker_manager
* misc fixes
* add sync order test
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-04-17 10:25:27 -05:00
Alex
b2c903c000
feat(mobile): use Weblate for i18n (2) ( #17620 )
...
* feat(mobile): use Weblate for i18n (2)
* remove old translation files
* dedup keys
* remove migration report
* chore
* remove localizely.yml
2025-04-15 15:54:26 +00:00
Alex
a522130122
feat(mobile): use Weblate for i18n (1) ( #17609 )
2025-04-15 08:30:01 -05:00
shenlong
28c664c769
refactor(mobile): log service ( #16383 )
...
refactor: log service
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
2025-02-27 15:18:49 -05:00
shenlong
4a9d80298b
fix(mobile): bootstrap store inside isolates ( #16392 )
...
fix: bootstrap store inside isolates
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-02-27 18:01:36 +00:00
shenlong
aeb3e0a84f
refactor(mobile): split store into repo and service ( #16199 )
...
* refactor(mobile): migrate store
* refactor(mobile): expand abbreviations
* chore(mobile): fix lint
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com >
Co-authored-by: Alex <alex.tran1502@gmail.com >
2025-02-19 13:05:24 -06:00
Alex
fd99bd05cf
feat(mobile): share to mechanism ( #15229 )
...
* setup ios
* chore: succesfully sent media to the app
* share from Android
* wip: navigate to share screen
* wip: UI for displaying upload candidate
* wip: logic
* wip: upload logic
* wip: up up up we got it up
* wip
* wip
* wip
* upload state
* feat: i18n
* fix: release build ios'
* feat: clear file cache
* pr feedback
* using const for checking download status
---------
Co-authored-by: Alex <alex@pop-os.localdomain >
2025-01-16 21:20:44 -06:00
dvbthien
11f585d0ad
refactor(mobile): refactor theme management ( #14415 )
2024-12-11 16:30:56 +00:00