* chore(mobile): i18n: "open_asset_info" in viewer kebab menu
* feat(mobile): move some top buttons into kebabu menu
* refactor(mobile): viewer kebab menu to use context-based button generation
* feat(mobile): refactor action button and kebab menu to use ConsumerWidget for improved state management
* feat(mobile): pass original theme to ViewerKebabMenu for consistent styling
* chore: styling
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* feat(mobile): implement viewer kebab menu with about option
* feat: revert exisitng buttons, adjust label name
* unify MenuAnchor usage
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* use adjustment time in iOS for hash reset
* migration
* fix equals check
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
* fixed the timezone issue in the Immich mobile app's metadata sheet to match the web app's behavior
* format dart
* now uses the shared applyTimezoneOffset() utility function from mobile/lib/utils/timezone.dart
* add tests
---------
Co-authored-by: Alex <alex.tran1502@gmail.com>
* fix(mobile): persist album sorting in settings
* fix(mobile): persist album layout
* fix: fixed store model id
* fix: corrupted AppSettingsEnum
* chore: refactor to remove RemoteAlbumSortMode
* refactor: use t instead of tr
* fix(mobile): normalize scrolling behavior in networking settings
Remove ClampingScrollPhysics from networking settings page to match
the scrolling behavior of other settings pages. This restores the
standard iOS bounce/elastic scrolling effect.
* fix(mobile): use consistent native transitions for Library pages
Change Trash, Shared Links, and Folders routes from CustomRoute to AutoRoute to enable native iOS transitions with swipe-back gesture support.
* fix(mobile): remove SafeArea wrapper and ClampingScrollPhysics from Settings
Remove SafeArea wrapper (Scaffold handles safe areas automatically) and ClampingScrollPhysics to enable native iOS bounce scrolling.
* fix(mobile): remove bottom white space in Sync Status page
Replace Padding wrapper with ListView padding to match other Settings pages and eliminate bottom white space.
* chore: fix Dart formatting
Run dart format to fix formatting issues in settings.page.dart and sync_status_and_actions.dart
* Format Dart files
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: kao-byte <benjaminliu@MacBook-Air.local>
* fix: incorrect updatedAt value in local assets
* add test
---------
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
* fix(mobile): first video memory doesn't play
* refactor: moved logic to static method
* refactor: fix haptic feedback & empty check
* refactor: use DriftMemory on setMemory
* refactor: move video reset into if block
* chore: break sheet tile into own file
* feat: set location from bottom sheet
* refactor: location picker
There was a lot of confusing controls here, simplified to 1 mode
* fix: local asset check
* chore: refactoring of location details widget
* fix: update currentAssetExifProvider when changing location
* chore: use SheetTile for location header
* chore: remove coordinate change check
* chore: remove comment
* feat: add action button in photo viewer for adding assets to albums, archiving, and moving to locked folders
* fix: use const constructors for icons in action button menu
* Update mobile/lib/presentation/widgets/action_buttons/add_action_button.widget.dart
Co-authored-by: Brandon Wees <brandonwees@gmail.com>
* Update mobile/lib/presentation/widgets/asset_viewer/bottom_bar.widget.dart
Co-authored-by: Brandon Wees <brandonwees@gmail.com>
* remove de translation
* fixed PR comments: https://github.com/immich-app/immich/pull/23608
* menu styling
* menu styling
* i18n
---------
Co-authored-by: Brandon Wees <brandonwees@gmail.com>
Co-authored-by: Alex <alex.tran1502@gmail.com>