* 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)
* 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)
* feat(mobile): add smooth timeline scrubbing setting
* refactor: read smooth scrubbing setting where the scrubber is built
(cherry picked from commit 222d9276d31e890d3d9beb6dae5d96a6f6ab52f0)
* 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)
* 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)
* 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)
* fix(mobile): show play instead of replay button for unplayed videos
* fix(video): clarify comment for playback status handling
(cherry picked from commit 0d1e1ffecd5df8793ee020f90ddb10d6252dd5d8)
* fix(mobile): limit max zoom by visible image pixels
* fix(mobile): limit max zoom by image pixel size
(cherry picked from commit b246fa7c8a458da2d89c0efa2b2a8db85182ea9c)
* 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)
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>
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>
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>
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>
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>
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>
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>
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>
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>