Commit graph

190 commits

Author SHA1 Message Date
shenlong
bd55f7e73a
chore: pump flutter_lints to 6.0 (#30664)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-15 16:55:45 +05:30
shenlong
52edcc0c74
refactor: unify person model (#30659)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-12 21:12:11 +05:30
shenlong
835c35e940
chore: migrate mobile translations accessor (2) (#30668)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-11 14:41:12 +05:30
Santo Shakil
9862e50aab
fix(mobile): decode remote thumbnails at displayed size (#29965)
* fix(mobile): decode remote thumbnails at displayed size

* use nullable decode size and reuse the tapped thumbnail in the viewer

* clean up decode size naming and guards
2026-08-10 21:14:23 +06:00
Santo Shakil
35c2a90fca
fix(mobile): video playback controls dead for backed up videos opened from search (#30587)
* key video player state by asset id instead of hero tag

* expose id on BaseAsset instead of a separate playerKey
2026-08-09 23:54:55 +06:00
shenlong
6167618f5c
fix: asset stack stacked over asset details (#30598)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-06 19:29:21 +05:30
shenlong
0687c0d3f7
fix: wire secondary action for bottom bar actions (#30583)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-06 01:15:31 +05:30
shenlong
4be8e1a9fc
fix: asset viewer bottom bar action colors (#30582)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-06 01:15:31 +05:30
shenlong
1c7c28bb0d
chore: more riverpod lints from dcm (#30447)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-05 01:26:49 +05:30
shenlong
8450687db7
chore: riverpod lints from dcm (#30446)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-05 01:26:49 +05:30
shenlong
cafd6c7c0f
refactor: cleanup actions & action tests (#30265)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-01 08:06:44 +05:30
shenlong
3d42c1424c
refactor: mobile upload action (#29949)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-01 08:06:43 +05:30
shenlong
0a97b4b099
refactor: mobile share actions (#29947)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-01 08:06:42 +05:30
shenlong
9fcbb6eefc
refactor: mobile edit asset actions (#30264)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-01 08:06:42 +05:30
shenlong
3f3bc44258
refactor: mobile delete action (#29771)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-01 08:06:41 +05:30
shenlong
47d34e3b4b
refactor: mobile lock action (#29767)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-01 08:06:41 +05:30
shenlong
5b0a324b68
feat: restore action (#29374)
* refactor: existing actions to new structure

# Conflicts:
#	mobile/lib/presentation/actions/action.dart
#	mobile/lib/presentation/actions/action.widget.dart
#	mobile/lib/presentation/actions/asset_debug.action.dart
#	mobile/lib/presentation/actions/favorite.action.dart
#	mobile/lib/presentation/actions/partner.action.dart
#	mobile/test/unit/presentation/actions/favorite_action_test.dart

* rename to actionitem

* review changes

* refactor: mobile restore action

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-01 08:06:40 +05:30
shenlong
fe5c8ed0fb
refactor: base action (#29617)
* refactor: existing actions to new structure

# Conflicts:
#	mobile/lib/presentation/actions/action.widget.dart
#	mobile/lib/presentation/widgets/action_buttons/favorite_action_button.widget.dart
#	mobile/lib/presentation/widgets/action_buttons/unfavorite_action_button.widget.dart
#	mobile/test/unit/presentation/partner_page_test.dart

* rename to actionitem

* more cleanup

* review changes

* lint changes

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-07-30 17:02:14 -04:00
shenlong
405020eeee
chore: enable use_build_context_synchronously lint (#30367)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-07-30 20:10:36 +00:00
Adam Gastineau
e7aace436d
chore(mobile): Apply stricter linting rules for correctness (#30372)
* chore(mobile): Apply stricter linting rules for correctness

* Added discarded_futures rule
2026-07-30 19:39:24 +00:00
Adam Gastineau
858aeadce8
chore(mobile): Apply stricter linting rules for Flutter and known issues (#30373) 2026-07-30 15:15:35 -04:00
Adam Gastineau
d864a90811
chore(mobile): Apply stricter linting rules for formatting (#30370)
* chore(mobile): Apply stricter linting rules for formatting

* Formatting fixes
2026-07-30 08:56:46 +00:00
Santo Shakil
534b8746e4
fix(mobile): refresh person thumbnail when the featured photo changes (#29350) 2026-07-29 22:20:26 +05:30
Yaros
e508781125
fix: limit ocr overlay to images (#30116) 2026-07-21 20:23:04 +00:00
Peter Ombodi
a30ebab70c
fix(mobile): refresh asset stack after deleting viewer item (#28164)
* fix(mobile): refresh asset stack after deleting viewer item

* fix(mobile): clamp stack index,
filter visible stack assets

* refactor(mobile): simplify stack asset refresh handling

* fix(mobile): revert changes in DeleteLocalActionButton

* style(mobile): reformat code

* fix(mobile): remove redundant setStack

---------

Co-authored-by: Peter Ombodi <peter.ombodi@gmail.com>
2026-07-22 01:48:47 +05:30
Santo Shakil
e81a79224c
fix(mobile): stop double close animation when dismissing an asset (#29413) 2026-07-21 19:08:45 +05:30
Adam Gastineau
45a6ea84af
fix(mobile): prevent crash on video widget dispose (#30078) 2026-07-20 19:00:37 +00:00
shenlong
f19f30ec66
fix: reset override for kebab buttons (#29380)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-07-17 01:19:55 +05:30
Adam Gastineau
c84ab54889
fix(mobile): clear zoom state when swapping assets (#29909) 2026-07-14 12:18:18 -05:00
Alex
f2ddace584
fix: system appbar icon color has incorrect color in asset viewer (#29885) 2026-07-13 14:50:38 -05:00
Santo Shakil
c4f084f4a5
fix(mobile): play videos from search results and folder view (#29693)
* fix(mobile): play videos from search results and folder view

* pr suggestion

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2026-07-08 20:22:35 +00:00
Adam Gastineau
a225c962de
fix(mobile): properly handle live photos locally (#29462)
* fix(mobile): properly handle live photos locally

* Added basic motion photo data tests

* Cover mismatched platforms and motion photos

* Revert unnecessary storage.repository changes

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2026-07-07 12:25:43 -05:00
Santo Shakil
6e1143e799
fix(mobile): hide video thumbnail when video is ready (#29012) 2026-06-26 22:20:40 -05:00
shenlong
cb1af3a8ec
feat: favorite bottom sheet action (#29320)
* chore: cleanup partner action test

* feat: favorite bottom sheet action

* review suggestions

* implicit favorite handling

* feat: viewer favorite icon to action (#29321)

* feat: viewer favorite icon to action

* feat: advance info action

* implicit favorite handling

* feat: viewer favorite icon to action

# Conflicts:
#	mobile/lib/presentation/widgets/asset_viewer/viewer_top_app_bar.widget.dart

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>

* chore: timeline action test (#29324)

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>

* clear selection only on success

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-06-25 16:55:06 -04:00
Yaros
4099fa6b4a
fix(mobile): app doesn't exit full-screen mode (#29301)
* fix(mobile): app doesn't exit full-screen mode

* chore: rename restoreSystemUI to restoreEdgeToEdge
2026-06-24 20:48:01 -05:00
Santo Shakil
d227ba2d51
fix(mobile): stale details after editing asset date (#28977) 2026-06-10 21:32:02 -05:00
Alex
d3438cf4a7
chore: improve OCR button and display on mobile (#28926)
* chore: improve OCR button and display on mobile

* Refactor

* format

* simplify ocr toggle button

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-06-09 13:20:18 -05:00
Yaros
733373c0ca
feat(mobile): ocr support (#26523) 2026-06-05 04:29:03 +05:30
Mees Frensel
99281de6ab
refactor!: disallow star rating < 1 (#27896)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
Co-authored-by: timonrieger <mail@timonrieger.de>
2026-06-04 17:06:28 +00:00
Peter Ombodi
9d4a6614b1
feat(mobile): Android. Immich as a gallery / image viewer app (#26109)
* feat(mobile): handle Android ACTION_VIEW intent
- add ViewIntent Pigeon API and generated bindings
- implement Android ViewIntentPlugin + iOS no-op host
- route ExternalMediaViewer by ViewIntentAttachment
- buffer pending view intents and flush on user ready/resume

* feat(mobile): fallback to computed checksum for timeline match
- hash local asset on-demand when checksum missing
- search main timeline by localId or checksum before standalone viewer
- persist computed hash into local_asset_entity

* fix(mobile): proper handling is user authenticated

* feat(mobile): open ACTION_VIEW fallback in AssetViewer
drop ExternalMediaViewer route

* feat(mobile): add logger

* test(mobile): add unit tests for view intent pending/flush flow

* fix(mobile): fix format

* fix(mobile): remove redundant iOS code
update code related to LocalAsset model and asset viewer

* refactor(mobile): simplify view intent flow and support file-backed ACTION_VIEW assets
remove redundant view intent model/repository layer
handle transient ACTION_VIEW files in viewer/upload flow
clean up managed temp files for fallback assets

* refactor(mobile): extract MediaStore utils and resolve view intents via merged assets

* refactor(mobile): move deferred view intents into providers, split view-intent providers, and clean up ACTION_VIEW handling

* refactor(mobile): resolve merge conflicts
use NativeSyncApi for hash files instead method from removed BackgroundServicePlugin.kt

* style(mobile): format files

* style(mobile): format files #2

* refactor(mobile): lazily materialize view-intent files and clean up temp-file handling

* fix(mobile): flush pending view intents after login navigation

* refactor(mobile): split view intent handler by platform and trigger it from app events

* refactor(mobile): move view intent handling behind platform-specific factories

* refactor(mobile): simplify code

* fix(mobile): hand off deep-link viewer to main timeline after upload
Add MainTimelineHandoffCoordinator to switch the asset viewer to the main timeline once a view-intent asset is uploaded and becomes available, and guard viewer reload/navigation transitions to avoid race conditions and crashes.

* refactor(mobile): use remote asset ids for view intent handoff and simplify resolver

* refactor(mobile): resolve merge conflicts

* style(mobile): reformat code

* style(mobile): reformat code #2

* fix(mobile): stabilize Android view intent asset resolution and fallback viewer

* refactor(mobile): share AssetViewer pre-navigation state preparation

* fix(mobile): wait for main timeline before deferred view intent handoff

* refactor(mobile): decouple view intent asset resolver from providers

* fix(mobile): avoid double pop when canceling upload dialog

* fix(mobile): resolve view intent MIME type with fallbacks

* docs(mobile): clarify view intent fallback asset TODO

* fix(mobile): resolve merge conflicts

* cleanup

* lint

---------

Co-authored-by: Peter Ombodi <peter.ombodi@gmail.com>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Alex Tran <alex.tran1502@gmail.com>
2026-06-03 12:05:52 -05:00
Timon
109e0a7ad0
fix(mobile): invisible ink splashes in asset sheet (#28756) 2026-06-02 10:37:20 -05:00
shenlong
14aff51da9
refactor: rename metadata to settings (#28691)
rename metadata to settings

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-30 10:27:55 -05:00
Luis Nachtigall
7384799f19
fix(mobile): asset viewer stuck on spinner after rotation (#28019) 2026-05-18 20:32:51 +05:30
Alex
43687cd8b4
fix: kebab menu icon colors and actions (#28433) 2026-05-14 22:23:50 +00:00
Marius
37cc028868
fix(mobile): use correct delete action (#26575)
fix(mobile): use correct delete for trashed assets

When viewing a trashed asset, the viewer bottom bar now shows the permanent delete button instead of the trash button, which had no effect on already-trashed assets.
2026-05-14 11:57:19 +00:00
Inês Costa
84a2b7a3c8
fix(mobile): add restore option to trashed assets (#27442) 2026-05-14 07:19:00 +00:00
shenlong
0a4ed6fd71
refactor: migrate viewer config to metadata table (#28396)
* refactor: app metadata

* refactor to per row store

* cleanup

* more test

* review changes

* more refactor

* refactor

* migrate primary color

* migrate dynamic theme

* migrate colorfulInterface

* cleanup providers

* migrate cleanup

* migrate mapconfig

* remove unused keys

* migrate timeline config

* migrate image config

* migrate viewer config

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-13 09:36:19 -05:00
Alex
6ca54ee722
feat: display more info in asset viewer (#24630)
* feat(mobile): more info for asset viewer

* feat(mobile): more info for asset viewer
2026-05-13 02:07:23 +00:00
shenlong
1932c60e1c
fix: kekab icon colors in light mode (#28366)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-12 11:27:55 -05:00
shenlong
12f7b2a005
chore: add always_put_control_body_on_new_line lint (#28352)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-05-11 13:47:24 -04:00