2110 Commits
Author SHA1 Message Date
DawidKrynskiandCodex c8a957a116 fix(mobile): use context search once server features are loaded (#31800)
Co-authored-by: Dawid Krynski <188586034+DawidKrynski@users.noreply.github.com>
Co-authored-by: Santo Shakil <santoshakil@users.noreply.github.com>
(cherry picked from commit be8e42526700d9ec5e72061e33f5039d50e40bae)
2026-10-29 20:43:01 +03:00
Ethan FerrierandCodex f7697264ed fix(mobile): ocr delete by asset (#32611)
(cherry picked from commit 56ed326acda2220fc7e3b21b17b3c8d24daf99cc)
2026-10-29 20:43:01 +03:00
Brent SaltzmanandCodex 3c383e46d1 fix: avoid duplicate manufacturer in camera name (#32657)
* fix(web,mobile): avoid duplicate manufacturer in camera name

Some cameras (e.g. Canon) already include the manufacturer in the EXIF
model, which made the details view show "Canon Canon EOS R6m2". Only
prepend the make when the model does not already start with it.

* refactor(web,mobile): address review feedback on camera name helper

- Use toLowerCase instead of toLocaleLowerCase for the comparison
- Hoist the whitespace regex to a static in the Dart helper
- Match any word of the make, so "EASTMAN KODAK COMPANY" with
  "KODAK EASYSHARE C875" is deduplicated too
- Compute the camera name once in DetailPanel

---------

Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
(cherry picked from commit cb2ea1e308d8a85f2f340f50b646f161d3528670)
2026-10-29 20:41:02 +03:00
shenlongandCodex c581bce715 fix: include partner shared assets for people even without showInTimeline (#32675)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
(cherry picked from commit 21ed7454836073a646273c7475b347e043439a90)
2026-10-28 20:41:41 +03:00
Kairui LiuandCodex c482c1e53e fix: preserve stack primary asset selection (#31380)
* fix: preserve stack primary asset selection

* test: select stacked assets by id

* chore: limit dart formatting changes

* fix: address stack viewer review feedback

* fix: align stack ordering with server

* fix: keep stack primary asset first

---------

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
(cherry picked from commit 5a5d7be11084969c3c00a294ce6c0527042f88e7)
2026-10-27 23:12:13 +03:00
YarosandCodex 919a4fd9ef fix: watch asset delete/archive in search (#31343)
* fix: watch asset delete/archive in search

* fix: restore via toast

* chore: format

* refactor: simplify search asset pruning

* chore: implement suggestions

* chore: more suggestions

* fix: mounted check

(cherry picked from commit f7b8ae5da370f947223b006618e5b4e5fb42fd33)
2026-10-26 22:35:01 +03:00
MertandCodex 70ef2884f0 feat(mobile): jxl decoder (#32592) 2026-10-24 11:52:05 +03:00
gitTurbofliegerandCodex 3aa65809b1 fix(mobile): stop trashing assets after deletion cancellation (#32522)
* fix(mobile): stop trashing assets after deletion cancellation

* fix(mobile): handle Android system delete cancellation

* fix(mobile): simplify

* simplify test

(cherry picked from commit 3517973b8a316c8fb729bf82fe4bbf95884b9146)
2026-10-22 20:43:53 +03:00
Santo ShakilandCodex 99a7830f6c fix(mobile): bump sqlite3_connection_pool to 0.2.13 (#32662)
* fix(mobile): bump sqlite3_connection_pool to 0.2.13

* fix(mobile): require sqlite3_connection_pool 0.2.13

(cherry picked from commit 539499ee5e3843d338287edcf6808c1820c74800)
2026-10-22 20:43:14 +03:00
Codex e04e70db2e Close startup log connection and use portable export filenames 2026-10-22 05:39:19 +03:00
Codex 3efc91ff9a Prepare localized 3.3.5-local.7 release with updated dependencies 2026-10-22 05:29:35 +03:00
Clément DelestreandCodex 7c07c001cd fix(mobile): keep header image when starting selection (#32356)
* fix(mobile): keep header image when starting selection

* fix(mobile): fade out header actions during selection

Hide the back button and person options menu with the same fade as the
timeline app bar, and block taps on the person name and birthday while
assets are selected.

---------

Co-authored-by: Santo Shakil <santoshakil@users.noreply.github.com>
(cherry picked from commit 745bdd2edf72ce0f75e748e2d68c37b6ea196cc5)
2026-10-22 05:25:45 +03:00
Jason RasmussenandCodex b12be9119f feat: passkeys (#32194)
Co-authored-by: Daniel Dietzler <mail@ddietzler.dev>
(cherry picked from commit 6233a79bf7e4cec11e9ea1094908ff3b228fcbe0)
2026-10-22 05:23:22 +03:00
Santo ShakilandCodex e66d5a70e7 fix(mobile): hide server addresses in upload error logs (#32550)
* fix(mobile): hide server addresses in upload error logs

* fix(mobile): remove duplicate upload failure logs

(cherry picked from commit 211773f778ca24ac33e64d46e50b3ab46702c851)
2026-10-22 05:22:44 +03:00
Tiago DeaneandCodex 6aaebd167d feat: option for mobile smooth timeline scrubbing (#32552)
* feat(mobile): add smooth timeline scrubbing setting

* refactor: read smooth scrubbing setting where the scrubber is built

(cherry picked from commit 222d9276d31e890d3d9beb6dae5d96a6f6ab52f0)
2026-10-22 05:21:00 +03:00
Mateus NavarroandCodex 434b7efd66 fix(mobile): border radius on list tiles in library page (#32476) (#32503)
* fix(mobile): standardize list tile radius in Quick Access Button List when pressed (#32476)

* fix(mobile): adjust list tile border radius based on partner presence in Quick Access Button List

* refactor(mobile): improve way to handle border radius of items in the QuickAccessButtonList

(cherry picked from commit fff2bd73f9b38a5a5b510ea69a77a470dd1acf56)
2026-10-22 05:18:40 +03:00
Santo ShakilandCodex 814cc14f88 feat(mobile): share logs from the startup error screen (#32288)
* fix(mobile): hide server addresses and tokens in shared logs

* feat(mobile): share logs from the startup error screen

* use only the shared logs patterns on the startup error screen

* fix(mobile): stop writing server urls and oauth values to the log

* fix(mobile): redact logs where they are read

* redact the startup error screen share

* fix(mobile): hide server addresses and tokens in shared logs

* fix(mobile): stop writing server urls and oauth values to the log

* fix(mobile): redact logs where they are read

* fix(mobile): redact logs when they are written

* log the startup error and share it as a log row

* fix(mobile): hide ipv6 addresses and name labels after their settings

* comment why the startup error row is only added here

(cherry picked from commit f7fa8a3a2d2c3b0ab59f90fbcc3c230c58a2aede)
2026-10-22 05:18:40 +03:00
Santo ShakilandCodex 59bf69f1d5 fix(mobile): hide server addresses and tokens in shared logs (#32287)
* fix(mobile): hide server addresses and tokens in shared logs

* fix(mobile): stop writing server urls and oauth values to the log

* fix(mobile): redact logs where they are read

* fix(mobile): redact logs when they are written

* fix(mobile): hide ipv6 addresses and name labels after their settings

(cherry picked from commit 89d2de1274a3e1a70a6169f4cfe1feebfb327791)
2026-10-22 05:18:40 +03:00
Santo ShakilandCodex f64adb5b36 fix(mobile): fallback localizations for unsupported locales (#32452)
* fix(mobile): fallback localizations for unsupported locales

* load the default delegates with an explicit english locale
2026-10-19 20:27:43 +03:00
f3db8d8b59 fix: unsupported locale for date format (#32267)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Santo Shakil <shakil.mezbah@gmail.com>
2026-10-19 20:27:19 +03:00
MaximALandCodex 9af9d35040 chore(mobile): Change x to typographically correct × (&times; in HTML) symbol (#32518)
Similar to #31304
2026-10-19 20:27:19 +03:00
Codex 43b94defd9 fix(mobile): use JSON maps for nested config compatibility defaults 2026-10-17 19:47:28 +03:00
Jason RasmussenandCodex 36a6e033aa fix: public config properties (#32500)
fix: public config visibility
2026-10-17 19:32:36 +03:00
Jason RasmussenandCodex 4341a2f34c fix: smpt email visibility (#32492) 2026-10-17 19:32:36 +03:00
Dag StuanandCodex 92ab6e9c41 fix(mobile): Keep asset viewer controls hidden if they were hidden before zooming. (#31832) 2026-10-16 20:51:28 +03:00
Lee, Hyo junandCodex 9e89e65d23 fix(mobile): sort time zones by name within the same offset (#32087) 2026-10-16 20:51:28 +03:00
Santo ShakilandCodex 12196bef4f fix(mobile): save typed coordinates in the location picker (#32460) 2026-10-16 20:51:28 +03:00
Codex 6665bb4796 feat: add verified Android and web update checks in settings 2026-10-15 14:54:44 +03:00
Luis NachtigallandCodex 57b2b007a8 fix(mobile): show play instead of replay button for unplayed videos (#32307)
* fix(mobile): show play instead of replay button for unplayed videos

* fix(video): clarify comment for playback status handling

(cherry picked from commit 0d1e1ffecd5df8793ee020f90ddb10d6252dd5d8)
2026-10-14 21:24:14 +03:00
Luis NachtigallandCodex 645f333d04 feat(mobile): limit max zoom by image pixel size (#32423)
* fix(mobile): limit max zoom by visible image pixels

* fix(mobile): limit max zoom by image pixel size

(cherry picked from commit b246fa7c8a458da2d89c0efa2b2a8db85182ea9c)
2026-10-14 21:24:14 +03:00
Jason RasmussenandCodex c318714fdc feat: server feature level (#32178)
* feat: server feature level

* fix: correctly compute feature level

(cherry picked from commit cc1e2363651eaff63848baad2c7932923ca66554)
2026-10-14 21:24:14 +03:00
WillandCodex 1daf922555 feat(mobile): mobile tags (#30753)
* feat(mobile): mobile tags

* fix(mobile); refactoring, replaced hook

* tag provider through asset service

* make search use a tag set

* use tag action directly

* use notification listener

* untag action

* handle untag response

* fix tests and add untag action test

* fix material error from tag picker dialog

* fix(mobile): clip tag picker tiles and update tag overflow

---------

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
Co-authored-by: Santo Shakil <shakil.mezbah@gmail.com>
(cherry picked from commit 83c7ec50056bbefa10869c78457f8882c72275e2)
2026-10-14 21:24:13 +03:00
Codex 5d204f646f Merge tag 'v3.3.3' into codex/immich-release-20261014
# Conflicts:
#	mobile/pubspec.yaml
2026-10-14 21:24:13 +03:00
Santo ShakilandCodex def46cae2f chore(mobile): hide the database export in release builds (#32285)
(cherry picked from commit 024e8e769624c953982957d4886368dcae838a18)
2026-10-13 21:49:29 +03:00
Codex 4fdcfb7ed9 chore: prepare local web and Android release 3.3.1-local.2 2026-10-12 21:01:23 +03:00
Luis NachtigallandCodex d63fc2088f refactor(mobile): cleanup image providers (#31824)
* refactor(mobile): remove redundant cancellation checks in image providers

* refactor(mobile): extract request helpers in full image providers

(cherry picked from commit 795507cfec262f8a6a9bd3ddd6f5647781e605ca)
2026-10-12 20:39:12 +03:00
762748f9ea fix(mobile): show the memories date in every app language (#32262)
fix(mobile): show the memories date in every app language (#32259)

(cherry picked from commit 116a9436ad1f8164d9dee904551e5067d724be99)

Co-authored-by: Santo Shakil <santoshakil@users.noreply.github.com>
2026-10-09 09:04:03 +00:00
f6fc530734 fix: show date on memories page (#32245)
fix: show date on memories page (#32206)

* fix: show date on memories page

* Clean up API

* Drop imports

---------


(cherry picked from commit 108a3cadbfe3b3e4305c04d8e4217aafb445f626)

Co-authored-by: Alex <alex.tran1502@gmail.com>
Co-authored-by: Adam Gastineau <adam@agg.im>
2026-10-08 20:38:58 +00:00
f7dd3ccdc6 fix(mobile): prevent rapid toggling and rerendering of cells (#32236)
fix(mobile): prevent rapid toggling and rerendering of cells (#32200)

* fix(mobile): prevent rapid toggling and rerendering of cells

* Apply Shakil's fix

(cherry picked from commit 9640d9f5d2b3cc2e0fab441401be54c0c03de4f5)

Co-authored-by: Adam Gastineau <adam@agg.im>
2026-10-08 18:16:57 +00:00
e9f171c441 fix(mobile): keep memories full screen while swiping (#32174)
fix(mobile): keep memories full screen while swiping (#32171)

(cherry picked from commit 86fed468a7f625c759072cb07a0d82accb74cf5e)

Co-authored-by: Santo Shakil <santoshakil@users.noreply.github.com>
2026-10-07 06:52:13 +00:00
ed3073624b fix: memories mobile sync for older clients (#32167)
fix: memories mobile sync for older clients (#32150)


(cherry picked from commit 8d377bfef5a0c9d840bf2c19d155f9779387baeb)

Co-authored-by: Daniel Dietzler <36593685+danieldietzler@users.noreply.github.com>
Co-authored-by: Santo Shakil <shakil.mezbah@gmail.com>
2026-10-06 14:10:38 +00:00
62bcb0601f feat: birthday memory on mobile (#32165)
feat: birthday memory on mobile (#32113)

* feat: birthday memory on mobile

* chore: remove yellow bg colors

* pr feedback

(cherry picked from commit 82cfc4b28b55c660d9c2da00c57437a20585a47b)

Co-authored-by: Alex <alex.tran1502@gmail.com>
2026-10-06 13:51:26 +00:00
fcc5400e36 fix(mobile): image jumps when full-res image loads during pinch or zoom animation (#32011)
fix(mobile): image jumps when full-res image loads during pinch or zoom animation (#31948)

(cherry picked from commit 007c18aec6cc9552fb7d8b7c791c41d7424876b0)

Co-authored-by: Luis Nachtigall <31982496+LeLunZ@users.noreply.github.com>
2026-10-02 08:57:56 +00:00
b9b7ddb569 fix(mobile): don't re-upload a photo the server already has (#32004)
fix(mobile): don't re-upload a photo the server already has (#31941)

(cherry picked from commit 02063972e82b1bfd17b6fc2e3b3ff39936229ea5)

Co-authored-by: Santo Shakil <santoshakil@users.noreply.github.com>
2026-10-02 07:23:29 +00:00
20472b34dc fix(mobile): don't start the foreground backup in iOS background launches (#32002)
fix(mobile): don't start the foreground backup in iOS background launches (#31943)

* fix(mobile): don't start the foreground backup in iOS background launches

* add a TODO to remove the background launch check

(cherry picked from commit 3e4492924541a0e73ea3c326fcfcfcd053871610)

Co-authored-by: Santo Shakil <santoshakil@users.noreply.github.com>
2026-10-02 07:22:41 +00:00
cb5ea76227 fix(mobile): make the iOS background batch wait for its remote sync (#32003)
fix(mobile): make the iOS background batch wait for its remote sync (#31942)

* fix(mobile): make the iOS background batch wait for its remote sync

* test onIosUpload itself, the worker reads its sync services from the providers

(cherry picked from commit ad93370f0287faafa7db615c726f32bd9e6d30e7)

Co-authored-by: Santo Shakil <santoshakil@users.noreply.github.com>
2026-10-02 07:22:19 +00:00
234cb6d19b fix(mobile): face thumbnail stuck blank after renaming a person (#32001)
fix(mobile): face thumbnail stuck blank after renaming a person (#30769)

* fix(mobile): face thumbnail stuck blank after renaming a person

* flatten the codec error guard and rework the tests around framework driven reuse

* trim the image provider tests and note the per load state rule

* keep two small image provider tests: the renamed face and a late failure of a cancelled load

* clearer image provider tests: return the created completer, comment the steps, drop the unused listener, rename to thumbWithChecksum

* use the provider constructor with a lint ignore in the cache key test

(cherry picked from commit a29153e90e127ee26ad7555f6fb7c562b97b4abe)

Co-authored-by: Santo Shakil <santoshakil@users.noreply.github.com>
2026-10-02 07:22:01 +00:00
c263b0d4d2 feat(mobile): editors can update album title & description (#31959)
feat(mobile): editors can update album title & description (#31954)


(cherry picked from commit cc916979502390640e186e421f84f3ce7414c884)

Co-authored-by: shenlong <139912620+shenlong-tanwen@users.noreply.github.com>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-09-30 21:26:59 +00:00
b20bc5ed82 feat: auto-sync name changes to connected users (#31931)
feat: auto-sync name changes to connected users (#31923)

* feat: auto-sync name changes to connected users

* fix: rename to faceId

* fix: pr feedback

* fix: mobile build

(cherry picked from commit aec7c0d97bd6679b2b300e72e870b83c5ef13c85)

Co-authored-by: Jason Rasmussen <jason@rasm.me>
2026-09-30 07:53:02 +00:00
c12d5e6d35 feat: people management (#31620)
Co-authored-by: Jason Rasmussen <jason@rasm.me>
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
2026-09-28 21:29:15 +02:00