* feat(mobile): rename passkeys
* fix(mobile): refresh the passkey list from the store after a rename
* fix(mobile): skip the name dialog after creating a passkey
* feat(mobile): passkeys page with new passkey
* feat(mobile): passkeys entry under settings
* show it in settings when logged in and passkeys are on
* remove it from the profile menu
* feat(mobile): use the server feature level for passkeys
* hide passkeys below the passkeys feature level, without asking the server
* keep the server's feature level on ServerVersion
* fix(mobile): passkeys as a settings section through the store
* fix(mobile): filter the settings sections in SettingSection
* fix(mobile): remove the passkeys description and use the settings padding
* 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)
* 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): 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): 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>
* ask before deleting local only photos on android 10 and below
* move the delete consent prompt into _cleanupLocalAssets
* ask on android 11 as well before deleting local photos
* ask before deleting only where android shows no prompt
* split the local delete prompt into its own helper
* pick the local delete dialog in one flat branch and rename notBackedUp to isLocalOnly
* play the server copy when the local video file cannot be read
* flatten the video source choice and add tests for it
* drop the platform override from the video viewer test
* set maxScale in asset viewer
fix#31496 by setting a a maximum of 10× the fitted size
* change maxScale to 20x
* moved the multiplier to a constant
* type fix
* fix mismerge
* chore(mobile): static Store to unify and streamline reactivity
* Add tests of caching and new stores
* Don't instantiate PeopleDbRepository
* Slight DB rename and fix throwing store methods
* fix(mobile): rewrite slideshow controller system
* Normalize playback status changes
* Improve preloading assets
* Added controller and widget tests
* Minor fixes from PR comments
* More minor fixes
* Move slideshow test after rename