Commit Graph
2016 Commits
Author SHA1 Message Date
Adam Gastineau 8e04e6e2c6 fix(mobile): prevent inner mutability on Freezed classes (#31229)
* fix(mobile): prevent inner mutability on Freezed classes

* Minor fixes
2026-09-03 21:04:58 +05:30
Adam Gastineau 6d85f202f4 fix(mobile): switch to new OpenAPI int in RotateParameters (#31246) 2026-09-03 14:32:01 +00:00
Santo Shakil 7211efa6cb chore(mobile): log app resume and pause (#31207) 2026-09-02 04:28:06 -07:00
Santo Shakil c17a119735 fix(mobile): refresh server info when the websocket connects (#31144)
refresh the server features and config when the websocket connects
2026-08-31 19:09:35 +06:00
Santo Shakil 006e7fd0d5 fix(mobile): keep the original filename when sharing downloaded assets (#30267)
* fix(mobile): keep the original filename when sharing downloaded assets

* use ordinal suffixes for duplicate share filenames

* rename display name maps to totals and duplicates seen

* drop the display name totals map and keep the first copy name clean

* fold the ordinal suffix into the share display name derivation

* resolve share names after download and test through the public flow

* use the renamed store repository in the share tests

* add docstrings to the share file helpers

* simplify the share name resolver to a single set

* note the share_plus cache folder behavior on the resolver

* drop the version pin from the resolver comment

* pin the share_plus version in the resolver comment

* undo the accidental reformat, keep the version pin

* explain the test harness and cut the teardown and wait noise

* say why the storage is stubbed, drop the platform override and busy wait for the share cleanup

* spy on the cleanup in the share tests instead of waiting for it
2026-08-31 19:05:00 +06:00
Adam Gastineau dc813e2816 fix(mobile): handle transient loading states for map timelines (#29735)
* fix(mobile): handle transient loading states for map timelines

* fix(mobile): handle transient loading states for map timelines

* Add support for new method

* Rewrote map options notifier to be more Riverpody
2026-08-28 06:06:10 -07:00
shenlongandshenlong-tanwen 22a56a79f2 fix: ios map settings sheet (#31060)
fix: ios map settings

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-28 00:27:02 +05:30
Timon 8b3d6b320b feat(server): new search API (#30179) 2026-08-27 20:39:55 +02:00
Adam Gastineau c04c81a979 chore(mobile): remove Drift* prefixes from classes and variables (#31038)
* chore(mobile): remove Drift* prefixes from classes and variables

* Remove *Drift* from related mocks
2026-08-26 19:11:12 +00:00
Yarosandshenlong-tanwen 0f821a7338 feat(mobile): map asset number (#28911)
* feat(mobile): map asset number

* chore: use totalAssets from service

* refactor: separate widget

* fix: async dispose

* chore: i18n

* chore: add back old i18n key

* bring back reactivity

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-26 05:59:27 +00:00
Lauritz Tiesteandshenlong-tanwen 4ff7148f85 feat(mobile): show asset owner in asset details (#29302)
* feat(mobile): show asset owner in asset details

* refactor(mobile): fetch asset owner from local DB instead of API

* cleanup

* review changes

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-25 20:40:05 +00:00
Damiano Ferrari 290861e347 fix(mobile): aspect ratio change (#30939)
* fix(mobile): aspect ratio change

* chore: explain the change
2026-08-25 13:52:05 -05:00
351be95769 feat: memories view (#28675)
* wip web memories view

* paginate searchMemories

* improve memories ui

* feat(mobile): memories view

* improve memories web ui

* fix(web): avoid unnecessary memory refreshes

* refactor(web): move timline memory manager filter

* fix(web): memories infinitely loading on 0 results

* fix(web): memories resetting

* feat(web): animated memory previews

* feat(web): memory page dark styling

* chore(mobile): fix failing memory lane tests

* chore(mobile): remove old import

* chore(e2e): fix failing memory lane tests

* chore(server): revert searchMemories changes

* chore(server): lint

* chore(mobile): fix bad merge

* chore(e2e): fix memory ui tests

* chore(web): rename /memory to /memories

* chore(mobile): linting

* chore(web): linting

* fix(web): prevent duplicate memory page loading

* fix(web): lint

* fix(web): memories page improvements

* chore(mobile): lint

* fix(mobile): fix translations

* fix(mobile): build errors

* fix(web): prevent memories from infinitely loading

* chore(e2e)): fix failng memory viewer test

* chore(web): clean up types in memory manager

* chore(web): lint

* feat: update list and detail memory page layouts

* onlyFavorites through drift

* rename to get all

* mobile: use widgetWhen in memory list page

* remove redundant check

* fix: e2e

---------

Co-authored-by: Timon <mail@timonrieger.de>
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-24 19:16:33 -05:00
Adam Gastineau 8dcfd36fa5 chore(mobile): move Drift into mobile/data (#30966)
* chore(mobile): move Drift into mobile/data

* Move into more structured subdirectories

* Fix changed merge paths
2026-08-25 00:51:02 +05:30
shenlongandshenlong-tanwen 2ea17db70c chore: pump flutter to 3.47.1 (#30962)
* chore: pump flutter to 3.47.1

* analysis fixes

* changes from iOS build

* flutter get ui lib

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-25 00:45:50 +05:30
Yarosandshenlong c98c20e963 fix(mobile): respect 24h system setting (#30792)
* fix(mobile): respect 24h system setting

* refactor: extract into utils

* chore: remove comment

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

* refactor: resolveAssetDateTime

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

* refactor: alwaysUse24HourFormat

* chore: impl suggestions

* refactor: less comments & resolveDateTimeLocale

---------

Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>
2026-08-23 17:51:03 +05:30
YarosandAlex 44a9384758 fix: do not exit search screen on back during multiselect (#30689)
* fix: do not exit screen on back multiselect search

* chore: apply suggestion

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

* refactor: fix in timeline widget

* chore(server): AssetOcrSyncReset.ts

* Revert "chore(server): AssetOcrSyncReset.ts"

This reverts commit c0647382cd63d046fee893ea0ee69503484d19f6.

* fix: test crash

* refactor: fix test instead of code workaround

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
2026-08-23 12:19:52 +00:00
Santo Shakil 2237b28813 fix(mobile): permanently delete local copies when moving to the locked folder (#29730)
* permanently delete local copies when moving to the locked folder

* simplify the delete path and move the stubs into the mock defaults

* drop the kept count from the partial message and log the mismatch instead
2026-08-22 07:42:11 +05:30
Adam Gastineau 11cdfa9c5e chore(mobile): remove commited db.repository.steps.dart (#30910) 2026-08-22 07:37:47 +05:30
shenlongandshenlong-tanwen a36fb67736 chore: align icon and font size of bottom bar actions (#30890)
* chore: align icon and font size of bottom bar actions

* align base action font weight to immich ui weights

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-21 14:06:42 -05:00
Adam Gastineau 37e033a09d chore(mobile): migrate remaining simple classes to Freezed (#30907) 2026-08-21 22:37:03 +05:30
Santo Shakil a490cea1c4 fix(mobile): dedupe stale remote_asset rows on sync (#28445)
* fix(mobile): dedupe stale remote_asset rows on sync

queue a pre-delete on the matching partial-index tuple before each
upsert in updateAssetsV1/V2 so the second insert does not crash on
SqliteException(2067) when the server re-issues a new id for the
same (ownerId, checksum). closes #22522 #27186.

* run the dedupe deletes before the inserts and keep only the last duplicate per payload

* switch the asset upsert to insert or replace

* trim the dedupe tests to the essentials
2026-08-21 11:13:48 +00:00
Jason RasmussenandDaniel Dietzler 11b1aa5ecf feat: cluster groups (#30739)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
2026-08-20 20:03:00 +02:00
Santo Shakil a066b5f301 fix(mobile): order album/place/person timelines by local date (#29338)
* fix(mobile): order album/place/person timelines by local date

* fold the timeline date ordering into one helper and tighten the tests

* drop the redundant none guard from the place asset query

* format
2026-08-20 13:52:33 +06:00
nikhilpodilaandshenlong 65b4b9b8fb fix(mobile): cannot deep link to memory lane (#30634) (#30787)
Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>
2026-08-18 18:37:15 +00:00
shenlongandshenlong-tanwen ea3fa92776 feat: actions undo handling (#30481)
* feat: actions undo handling

# Conflicts:
#	mobile/lib/main.dart

* address pr reviews

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-19 00:06:57 +05:30
Santo Shakil 1539ae8b07 fix(mobile): resend an upload once when the connection dies before a response (#30843) 2026-08-18 22:38:52 +06:00
Adam Gastineau 225ca9ab8d chore(mobile): use Drift @DriftAccessor() and collapse some providers (#30693)
* chore(mobile): use Drift @DriftAccessor() and collapse some providers

* Fix import order

* Required formatting
2026-08-17 14:43:32 -07:00
Santo Shakil 9ab12b0c4e fix(mobile): mark finished downloads complete instead of leaving them stuck (#29023)
* wire download status to the ui and dismiss finished entries

* mark finished downloads with a checkmark instead of dismissing

* use the theme color for the done icon and guard status updates on a known task
2026-08-17 16:10:26 +06:00
shenlongandshenlong-tanwen ffc83eae36 chore: more dart lints (#30665)
The lints are regrouped and sorted. Also, added the following new lints:
- unnecessary_ignore
- parameter_assignments
- avoid_unused_constructor_parameters
- tighten_type_of_initializing_formals
- only_throw_errors
- deprecated_consistency
- unnecessary_statements

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-15 16:55:45 +05:30
shenlongandshenlong-tanwen 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
cmdPromptCriticalandcmdpromptcritical 66d010381e fix(mobile): prevent snapping to center on pinch-to-zoom release (#29207) (#29343)
Co-authored-by: cmdpromptcritical <cmdpromptcritical@github.com>
2026-08-14 12:30:28 -07:00
Adam Gastineau 190a939af7 fix(mobile): disable iOS smart quotes/dashes in email/password inputs (#30767)
* fix(mobile): disable iOS smart quotes/dashes in email/password inputs

* Remove enum prefixes
2026-08-14 19:21:39 +00:00
shenlongandshenlong-tanwen 652ef8a427 refactor: server capabilities (#30663)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-14 07:53:12 -05:00
Ben Beckford 447cc40a50 feat: workflow logging (#29878)
* feat: workflow logging

* chore: update sql and openapi patch

* chore: include id in workflow log entries

* chore(server): update sql and lint

* chore(mobile): remove openapi files

* chore(web): lint

* chore: clean up workflow logging

* chore(server): add runId to workflow logs

* chore(server): store workflow results as enum
2026-08-13 19:18:24 -07:00
Adam Gastineau b82d480552 fix(mobile): prevent iOS status bar scroll to top during transitions (#30717) 2026-08-12 12:57:45 -07:00
shenlongandshenlong-tanwen 1c3a5cf508 chore: remove old people provider (#30662)
* chore: remove old people provider

* refactor: rename driftGetAllPeopleProvider

* minor fixes

---------

Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-12 21:12:12 +05:30
shenlongandshenlong-tanwen 303a9f15b1 refactor: reactive driftGetAllPeopleProvider (#30660)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-12 21:12:12 +05:30
shenlongandshenlong-tanwen 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
shenlongandshenlong-tanwen 943c11c019 chore: label local only delete as trash (#30726)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-12 10:02:08 -04:00
shenlongandshenlong-tanwen ce705dcc06 fix: riverpod reactivity regression from lint fixes (#30734)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-12 10:00:06 -04:00
shenlongandshenlong-tanwen 675408b003 chore: migrate mobile translations accessor (5) (#30672)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-11 14:41:13 +05:30
shenlongandshenlong-tanwen a8b3b30aba chore: migrate mobile translations accessor (4) (#30671)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-11 14:41:13 +05:30
shenlongandshenlong-tanwen d799698c51 chore: migrate mobile translations accessor (3) (#30670)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-11 14:41:12 +05:30
shenlongandshenlong-tanwen 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
shenlongandshenlong-tanwen 565fbe4917 chore: migrate mobile translations accessor (1) (#30667)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-08-11 14:41:11 +05:30
Adam Gastineau 235daff561 chore(mobile): more complicated Freezed pass (#30452)
* chore(mobile): example freezed implementation on some models
2026-08-10 14:12:45 -07:00
Santo Shakil 0ff47f4178 fix(mobile): don't let a frozen sync block syncing on resume (#29870)
* fix(mobile): don't let a frozen sync block syncing on resume

* share the task lists between the cancel paths

* fix analyzer issues in resume integration test

* isolate the resume e2e test and pin the worker pool setup
2026-08-10 21:39:38 +06:00
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