1
0
mirror of https://github.com/immich-app/immich.git synced 2025-08-07 23:03:36 +02:00

171 Commits

Author SHA1 Message Date
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
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
a4c0dc5007 chore: post release tasks (#19311) 2025-06-19 15:35:25 -04:00
3e62497fd0 fix: local network permission (#19285) 2025-06-19 14:18:51 +00:00
a1bc862a32 chore: post release tasks (#19249) 2025-06-19 09:11:24 -05:00
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
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
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
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
ce6631f7e0 feat(mobile): hash assets in isolate (#18924) 2025-06-06 11:23:05 +05:30
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
219f5b25a4 chore: post release tasks (#18692) 2025-05-27 17:56:12 +00:00
806000e671 chore: post release tasks (#18549) 2025-05-24 00:44:25 +05:30
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
205260d31c chore: post release tasks (#17895) 2025-04-27 23:02:03 -05:00
644defa4a1 chore: post release tasks (#17867) 2025-04-25 04:14:40 +00:00
57d622bc43 chore: post release tasks (#17816) 2025-04-23 16:41:08 -05:00
548298b0c7 chore: post release tasks (#17341) 2025-04-03 08:47:52 -04:00
bd822657d3 chore: post release tasks (#17262) 2025-04-01 00:36:18 +01:00
411521b21d chore: post release tasks (#17179) 2025-03-27 19:41:22 -04:00
b8ff93a3c9 chore: post release tasks (#17097) 2025-03-25 21:22:30 +01:00
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
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
c110c9b00e chore(mobile): post release task (#16623) 2025-03-05 14:54:56 -06:00
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
c8eef5ad4d fix(mobile): fix typos (#16456)
Found via codespell
2025-03-01 20:06:47 +00:00
f11080cc2d chore(mobile): post release task (#16437) 2025-02-28 21:09:09 -06:00
082471dfd9 chore(mobile): post release task (#16349) 2025-02-27 09:46:34 -06:00
1a190c33a0 chore(mobile): post release task (#16004) 2025-02-11 11:23:02 -06:00
90c607c1a6 chore(mobile): post release task (#15998) 2025-02-10 11:12:36 -06:00
8dab5d3798 chore(mobile): post release task (#15662) 2025-01-26 15:09:15 -06:00
61bc24d7ea chore(mobile): post release task (#15581) 2025-01-24 17:28:00 +00:00
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
c5baf79f61 chore(mobile): post release task (#15148) 2025-01-08 11:51:08 +01:00
f58b2572e6 chore: post release tasks (#14749) 2024-12-17 14:02:07 -06:00
9503bf479b feat(album): album view sort order (#14648)
* feat(mobile): album view sort order

* feat: add error message

* refactor(mobile): album page (#14659)

* refactor album page

* update lint rule

* const record

* fix: updating sort order when pull to refresh

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>

* Move sort toggle button to bottom sheet menu

* chore: revert multiselectgrid loading status

* chore: revert multiselectgrid loading status

---------

Co-authored-by: Mert <101130780+mertalev@users.noreply.github.com>
2024-12-16 16:11:48 +00:00
6b0f9ec46c chore(mobile): post release tasks (#14656) 2024-12-16 08:42:40 -06:00
70b4647a21 chore(mobile): post release tasks (#14603) 2024-12-10 21:55:59 +00:00
c02e3e2a2e chore(mobile): post release tasks (#14520) 2024-12-06 21:04:02 -05:00
055f1fc72f feat(mobile): Auto switching server URLs (#14437) 2024-12-05 09:11:48 -06:00
3c38851d50 feat(mobile): native_video_player (#12104)
* add native player library

* splitup the player

* stateful widget

* refactor: native_video_player

* fix: handle buffering

* turn on volume when video plays

* fix: aspect ratio

* fix: handle remote asset orientation

* refinements and fixes

fix orientation for remote assets

wip separate widget

separate video loader widget

fixed memory leak

optimized seeking, cleanup

debug context pop

use global key

back to one widget

fixed rebuild

wait for swipe animation to finish

smooth hero animation for remote videos

faster scroll animation

* clean up logging

* refactor aspect ratio calculation

* removed unnecessary import

* transitive dependencies

* fixed referencing uninitialized orientation

* use correct ref to build android

* higher res placeholder for local videos

* slightly lower delay

* await things

* fix controls when swiping between image and video

* linting

* extra smooth seeking, add comments

* chore: generate router page

* use current asset provider and loadAsset

* fix stack handling

* improved motion photo handling

* use visibility for motion videos

* error handling for async calls

* fix duplicate key error

* maybe fix duplicate key error

* increase delay for hero animation

* faster initialization for remote videos

* ensure dimensions for memory cards

* make aspect ratio logic reusable, optimizations

* refactor: move exif search from aspect ratio to orientation

* local orientation on ios is unreliable; prefer remote

* fix no audio in silent mode on ios

* increase bottom bar opacity to account for hdr

* remove unused import

* fix live photo play button not updating

* fix map marker -> galleryviewer

* remove video_player

* fix hdr playback on android

* fix looping

* remove unused dependencies

* update to latest player commit

* fix player controls hiding when video is not playing

* fix restart video

* stop showing motion video after ending when looping is disabled

* delay video initialization to avoid placeholder flicker

* faster animation

* shorter delay

* small delay for image -> video on android

* fix: lint

* hide stacked children when controls are hidden, avoid bottom bar dropping

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: mertalev <101130780+mertalev@users.noreply.github.com>
2024-12-04 16:03:46 -05:00
95297cd024 chore(mobile): post release tasks (#14259) 2024-11-20 14:04:33 -05:00
a9525de356 chore(mobile): post release tasks (#14105) 2024-11-12 14:34:33 -05:00
2fe6607aea chore(mobile): post release tasks (#13989) 2024-11-07 10:27:28 -06:00
cff0b95f4c chore(mobile): post release task (#13954) 2024-11-06 17:57:45 -05:00
044c3e93f8 chore(mobile): post release task (#13779) 2024-10-28 16:12:35 +00:00
432bcbbd1a chore(mobile): post release task (#13136) 2024-10-03 10:19:14 +07:00
4ed1517e60 chore(mobile): post release task (#12991) 2024-09-27 14:13:24 -04:00
a6e703ed6b chore(mobile): post release task (#12955) 2024-09-27 08:11:22 +07:00
cdbc673a59 chore(mobile): post release task (#12615) 2024-09-13 13:25:43 +01:00