* 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): list passkeys
* fix(mobile): show the passkey list as the server's passkeys
* fix(mobile): reword and align the passkey list, refresh it from the store
* feat(mobile): login with passkey
* feat(mobile): use the server feature level on the login page
* refactor(mobile): share the steps after a login
* password, OAuth and passkey logins end with one finishLogin
* OAuth now also connects the websocket, like the password login
* fix(mobile): passkey login through the shared login steps
* fix(mobile): build the login response through its constructor
* 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(mobile): log out before resetting the local database
* fix(mobile): use a stateful widget for the reset state instead of hooks
* fix(mobile): run the reset tests' db work on the real clock
* 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)
* 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): 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>
* add clear file cache handling and snackbar
* create function to count deleted cache size
* clean up code and test
* ensure stable behaviour on non ios device
* refactor(mobile): simplify clear file cache feedback
* 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
* 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>
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>