Commit Graph

581 Commits (main)

Author SHA1 Message Date
shenlong 5fe954b3c9
fix: use lock to synchronise foreground and background backup (#21522)
* fix: use lock to synchronise foreground and background backup

# Conflicts:
#	mobile/lib/domain/services/background_worker.service.dart
#	mobile/lib/platform/background_worker_api.g.dart
#	mobile/pigeon/background_worker_api.dart

* add timeout to the splash-screen acquire lock

* fix: null check on created date

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-09-04 11:44:33 -05:00
Mert e427778a96
fix(mobile): pause image loading on inactive state (#21543)
* pause image loading

* make thumbhashes wait too
2025-09-04 08:40:38 -05: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
github-actions f15376a107 chore: version v1.140.1 2025-08-30 19:13:06 +00:00
Alex d6b8c0926f
chore: post release tasks (#21385) 2025-08-30 13:45:29 -05:00
github-actions b6223af5ca chore: version v1.140.0 2025-08-28 18:50:45 +00: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
Alex f65dabd43a
chore: post release tasks (#21228) 2025-08-27 21:17:56 -05:00
github-actions b44d2a241d chore: version v1.139.4 2025-08-25 02:39:18 +00:00
Alex 605764f226
chore: post release tasks (#21191) 2025-08-24 21:31:56 -05:00
github-actions f8b41ea8aa chore: version v1.139.3 2025-08-23 16:37:46 +00:00
Alex bedaa729e9
chore: post release tasks (#21140) 2025-08-23 11:06:13 -05:00
github-actions 571504aa5e chore: version v1.139.2 2025-08-21 22:35:59 +00:00
Alex 65fafcab37
chore: manually pump 1.139.1 (#21127) 2025-08-21 22:33:51 +00:00
Alex b6a91746d8
chore: Revert version v1.139.1 (#21125)
Revert "chore: version v1.139.1"

This reverts commit 89533a858f.
2025-08-21 17:15:11 -05:00
github-actions 89533a858f chore: version v1.139.1 2025-08-21 22:02:08 +00:00
Alex dc5a0f8c33
chore: pump the pump script (#21122)
* chore: pump the pump script

* pump 1.139.0
2025-08-21 17:00:48 -05:00
Alex 73bb05c5f9
chore: Revert version v1.139.0 (#21121)
Revert "chore: version v1.139.0"

This reverts commit b69470c69e.
2025-08-21 20:41:46 +00:00
github-actions b69470c69e chore: version v1.139.0 2025-08-21 20:26:48 +00: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
Mert abc7bfa0ba
feat(mobile): platform thumbnail api (#20910) 2025-08-19 12:48:35 -04:00
Alex acb1e513a7
chore: post release tasks (#21042) 2025-08-19 08:37:17 -04:00
github-actions 3d515f5072 chore: version v1.138.1 2025-08-18 15:23:35 +00:00
github-actions bede19a3ca chore: version v1.138.0 2025-08-13 17:08:29 +00:00
Brandon Wees 13d43e193e
feat(mobile): use custom headers when connecting in widget (#20666)
* feat(mobile): use custom headers when connecting in widget

* delete log in android widget

* chore: code review changes
2025-08-05 10:29:27 -05:00
renovate[bot] ae15efdf2a
chore(deps): update dependency pigeon to v26 (#20678)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Zack Pollard <zackpollard@ymail.com>
2025-08-05 10:52:03 +00:00
github-actions 007ba1d9ef chore: version v1.137.3 2025-08-01 14:52:24 +00:00
Alex 1b8354ed36
chore: post release tasks (#20497) 2025-08-01 05:38:52 -05:00
github-actions 9242afb4b0 chore: version v1.137.2 2025-08-01 02:45:16 +00:00
github-actions a07531be3b chore: version v1.137.1 2025-07-31 23:05:34 +00:00
github-actions c3263e50fc chore: version v1.137.0 2025-07-31 20:19:26 +00:00
shenlong 9f20522df5
chore: add isFavorite to PlatformAsset in duplicate check (#20427)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-30 08:44:19 -05:00
shenlong 268b411a6f
fix: sync is_favorite from native (#20412)
* feat: sync is_favorite from native

* handle favorite during upload

* Update mobile/ios/Runner/Sync/MessagesImpl.swift

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-07-29 21:57:04 -05:00
github-actions 089085fcdb chore: version v1.136.0 2025-07-24 14:24:38 +00:00
Min Idzelis 576f681b5c
feat: remove dep on cwd for workers (#20012) 2025-07-18 10:57:49 -04:00
Brandon Wees 743b6644e9
feat(widgets): iOS widget improvements (#19893)
* improvements to error handling, ability to select "Favorites" as a virtual album, fix widgets not showing image when tinting homescreen

* dont include isFavorite all the time

* remove check for if the album exists

this will never run because we default to Album.NONE and its impossible to distinguish between no album selected and album DNE (we dont know what the store ID is, only what iOS gives)
2025-07-15 21:17:24 -05:00
Daimolean ba262fbaa8
feat(mobile): drift place page (#19914)
* feat(mobile): drift place page

* merge main

* feat(mobile): drift place detail page (#19915)

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-07-15 15:10:12 +00:00
Zach McGaughey a17bba3328
fix: allow insecure connections in iOS WidgetExtension (#19863)
Allow insecure connections in WidgetExtension
2025-07-11 08:46:17 -05:00
Alex 68db17028b
feat: new create album page (#19731)
* feat: new create album page

* finished create album flow

* refactor into stateful widgets

* refactor

* focus fix

* lint

* default sort

* pr feedback
2025-07-10 11:59:15 -05:00
Brandon Wees a918481c0b
feat(mobile): cache latest ios widget entry for fallback (#19824)
* cache the last image an ios widget fetched and use if a fetch fails in a future timeline build

* code review fixes

* downgrade pbx for flutter

* use cache in snapshots
2025-07-09 13:59:54 -05:00
shenlong dfe6d27bbd
feat: sqlite video player (#19792)
* feat: video player

* use remote asset id in local query

* fix: error from pre-caching beyond total assets

* fix: flipped local videos

* incorrect aspect ratio on iOS

* ignore other storage id during equals check

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-07-09 09:34:25 -05:00
Brandon Wees 64cc7239fe
feat(mobile): ios widget deeplink to asset in app (#19510)
* feat: ios widget deeplinks to asset in app

* fix: casing

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-25 11:37:25 -05:00
Brandon Wees 2e13543d5d
fix: ios widget webp support (#19469) 2025-06-24 10:33:38 -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
github-actions 6563fa608a chore: version v1.135.3 2025-06-20 19:48:18 +00:00
github-actions a04c6ed80d chore: version v1.135.2 2025-06-20 14:52:47 +00:00
Alex a4c0dc5007
chore: post release tasks (#19311) 2025-06-19 15:35:25 -04:00
github-actions 3434544864 chore: version v1.135.1 2025-06-19 17:37:39 +00:00
Brandon Wees 269bf4b344
fix: iOS 17.0 target version for widget (#19308) 2025-06-19 17:00:54 +00:00
Alex 3e62497fd0
fix: local network permission (#19285) 2025-06-19 14:18:51 +00:00
Alex a1bc862a32
chore: post release tasks (#19249) 2025-06-19 09:11:24 -05:00
github-actions 65e8d75e82 chore: version v1.135.0 2025-06-18 13:45:07 +00:00
Brandon Wees a0f44f147b
feat(mobile): ios widgets (#19148)
* feat: working widgets

* chore/feat: cleaned up API, added album picker to random widget

* album filtering for requests

* check album and throw if not found

* fix app IDs and project configuration

* switch to repository/service model for updating widgets

* fix: remove home widget import

* revert info.plist formatting changes

* ran swift-format on widget code

* more formatting changes (this time run from xcode)

* show memory on widget picker snapshot

* fix: dart changes from code review

* fix: swift code review changes (not including task groups)

* fix: use task groups to run image retrievals concurrently, get rid of do catch in favor of if let

* chore: cleanup widget service in dart app

* chore: format swift

* fix: remove comma

why does xcode not freak out over this >:(

* switch to preview size for thumbnail

* chore: cropped large image

* fix: properly resize widgets so we dont OOM

* fix: set app group on logout

happens on first install

* fix: stupid app ids

* fix: revert back to thumbnail

we are hitting OOM exceptions due to resizing, once we have on-the-fly resizing on server this can be upgraded

* fix: more memory efficient resizing method, remove extraneous resize commands from API call

* fix: random widget use 12 entries instead of 24 to save memory

* fix: modify duration of entries to 20 minutes and only generate 10 at a time to avoid OOM

* feat: toggle to show album name on random widget

* Podfile lock

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-06-17 14:43:09 +00:00
shenlong bcda2c6e22
feat(mobile): sqlite timeline (#19197)
* wip: timeline

* more segment extensions

* added scrubber

* refactor: timeline state

* more refactors

* fix scrubber segments

* added remote thumb & thumbhash provider

* feat: merged view

* scrub / merged asset fixes

* rename stuff & add tile indicators

* fix local album timeline query

* ignore hidden assets during sync

* ignore recovered assets during sync

* old scrubber

* add video indicator

* handle groupBy

* handle partner inTimeline

* show duration

* reduce widget nesting in thumb tile

* merge main

* chore: extend cacheExtent

* ignore touch events on scrub label when not visible

* scrub label ignore events and hide immediately

* auto reload on sync

* refactor image providers

* throttle db updates

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2025-06-16 20:37:45 +05:30
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
Savely Krasovsky 047c7821a3
feat(mobile): update maplibre to support PMTiles in the mobile app (#19016)
* feat(mobile): update maplibre to support PMTiles in the mobile app

* feat(mobile): update Podfile.lock
2025-06-09 09:40:12 -05:00
Brandon Wees 5574b2dd39
feat(mobile): add cast support (#18341)
* initial cast framework complete and mocked cast dialog working

* wip casting

* casting works!

just need to add session key check and remote video controls

* cleanup of classes

* add session expiration checks

* cast dialog now shows connected device at top of list with a list header. Discovered devices are also cached for app session.

* cast video player finalized

* show fullsize assets on casting

* translation already happens on the text element

* remove prints

* fix lintings

* code review changes from @shenlong-tanwen

* fix connect method override

* fix alphabetization

* remove important

* filter chromecast audio devices

* fix some disconnect command ordering issues and unawaited futures

* remove prints

* only disconnect if we are connected

* don't try to reconnect if its the current device

* add cast button to top bar

* format sessions api

* more formatting issues fixed

* add snack bar to tell user that we cannot cast an asset that is not uploaded to server

* make casting icon change to primary color when casting is active

* only show casting snackbar if we are casting

* dont show cast button if asset is remote and we are not casting

* stop playing media if we seek to an asset that is not remote

* remove https check since it works with local http IP addresses

* remove unneeded imports

* fix recasting when socket closes

* fix info plist formatting

* only show cast button if there is an active websocket connection (ie the server is accessible)

* add device capability bitmask checks

* small comment about bitmask
2025-06-08 21:55:23 -05:00
shenlong 75c24f0023
feat(mobile): sync local asset width & height from platform (#18994)
* add width and height to sqlite entities

* sync width & height from platform

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-06-08 21:50:54 -05:00
shenlong ce6631f7e0
feat(mobile): hash assets in isolate (#18924) 2025-06-06 11:23:05 +05:30
shenlong dbdb64f6c5
feat: delta sync (#18428)
* feat: delta sync

* fix: ignore iCloud assets

* feat: dev logs

* add full sync button

* remove photo_manager dep for sync

* misc logs and fix

* add time taken to DLog

* fix: build release iOS

* ios sync go brrr

* rename local sync service

* update isar fork

* rename to platform assets / albums

* fix ci check

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-05-29 10:42:00 -05:00
Alex 219f5b25a4
chore: post release tasks (#18692) 2025-05-27 17:56:12 +00:00
github-actions 58ae77ec92 chore: version v1.134.0 2025-05-27 16:47:49 +00:00
Alex 806000e671
chore: post release tasks (#18549) 2025-05-24 00:44:25 +05:30
github-actions 54bafccbf9 chore: version v1.133.1 2025-05-23 17:37:44 +00:00
github-actions 55adc136c8 chore: version v1.133.0 2025-05-21 19:47:42 +00: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
Alex 205260d31c
chore: post release tasks (#17895) 2025-04-27 23:02:03 -05:00
github-actions 02994883fe chore: version v1.132.3 2025-04-25 19:44:05 +00:00
Alex 644defa4a1
chore: post release tasks (#17867) 2025-04-25 04:14:40 +00:00
github-actions 0d60be3d87 chore: version v1.132.2 2025-04-25 03:07:06 +00:00
github-actions 37f5e6e2cb chore: version v1.132.1 2025-04-23 21:43:47 +00:00
Alex 57d622bc43
chore: post release tasks (#17816) 2025-04-23 16:41:08 -05:00
github-actions f659ef4b7a chore: version v1.132.0 2025-04-23 16:44:47 +00:00
Yaros c49fd2065b
chore(mobile): bump ios deployment target (#17715)
* chore: bump ios deployment target

* podfile

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-04-21 05:18:25 +00:00
Alex ab2a7006f9
chore(mobile): small visual fix and update (#17547)
* chore(mobile): small visual fix and update

* update

* update

* remove design placeholder
2025-04-13 08:01:32 -05:00
Alex 548298b0c7
chore: post release tasks (#17341) 2025-04-03 08:47:52 -04:00
github-actions 00d3b8d83a chore: version v1.131.3 2025-04-01 22:27:52 +00:00
github-actions 9aa3850769 chore: version v1.131.2 2025-04-01 11:41:56 +00:00
Alex bd822657d3
chore: post release tasks (#17262) 2025-04-01 00:36:18 +01:00
github-actions 7729fe80fa chore: version v1.131.1 2025-03-31 20:36:48 +00:00
github-actions 5b63b9fc8b chore: version v1.131.0 2025-03-31 18:41:13 +00:00
Alex 411521b21d
chore: post release tasks (#17179) 2025-03-27 19:41:22 -04:00
github-actions 43f8f473e9 chore: version v1.130.3 2025-03-27 15:54:30 +00:00
github-actions 2f8725c66f chore: version v1.130.2 2025-03-26 15:34:54 +00:00
github-actions 4cf7c55680 chore: version v1.130.1 2025-03-25 20:25:01 +00:00
Alex b8ff93a3c9
chore: post release tasks (#17097) 2025-03-25 21:22:30 +01:00
github-actions 42b1efb679 chore: version v1.130.0 2025-03-25 13:48:45 +00:00
shenlong 6caa11d079
chore(mobile): use path provider foundation (#16804)
* chore(mobile): use path provider foundation

* chore: update podfile

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>
2025-03-11 09:26:43 -05:00
Alex 75fa305e98
chore: flutter 3.29.1 (#16730)
* update dependencies

* update flutter version reference

* update flutter version reference

* update AndroidManifest with flutter_web_auth_2

* chore: lock file flutter version

* fix: ios build
2025-03-10 21:46:36 -05:00
Alex 17c5094719
chore(mobile): upgrade flutter_web_auth_2 (#16741)
* chore(mobile): upgrade flutter_web_auth_2

* pod file
2025-03-09 20:26:37 -05:00
Alex c110c9b00e
chore(mobile): post release task (#16623) 2025-03-05 14:54:56 -06:00
github-actions 31dd15ce8a chore: version v1.129.0 2025-03-05 19:47:50 +00:00
shenlong 3b0af1c8a9
fix(mobile): do not pause audio on app start (#16596)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2025-03-04 16:00:01 -06:00
luzpaz c8eef5ad4d
fix(mobile): fix typos (#16456)
Found via codespell
2025-03-01 20:06:47 +00:00
Alex f11080cc2d
chore(mobile): post release task (#16437) 2025-02-28 21:09:09 -06:00
github-actions dc143046e3 chore: version v1.128.0 2025-02-28 18:54:08 +00:00
Alex 082471dfd9
chore(mobile): post release task (#16349) 2025-02-27 09:46:34 -06:00
github-actions 5f7f88ff17 chore: version v1.127.0 2025-02-26 15:18:50 +00:00
Alex 1a190c33a0
chore(mobile): post release task (#16004) 2025-02-11 11:23:02 -06:00