immich/mobile/lib/widgets/common
Brandon Wees 5574b2dd39
feat(mobile): add cast support (#18341)
* initial cast framework complete and mocked cast dialog working

* wip casting

* casting works!

just need to add session key check and remote video controls

* cleanup of classes

* add session expiration checks

* cast dialog now shows connected device at top of list with a list header. Discovered devices are also cached for app session.

* cast video player finalized

* show fullsize assets on casting

* translation already happens on the text element

* remove prints

* fix lintings

* code review changes from @shenlong-tanwen

* fix connect method override

* fix alphabetization

* remove important

* filter chromecast audio devices

* fix some disconnect command ordering issues and unawaited futures

* remove prints

* only disconnect if we are connected

* don't try to reconnect if its the current device

* add cast button to top bar

* format sessions api

* more formatting issues fixed

* add snack bar to tell user that we cannot cast an asset that is not uploaded to server

* make casting icon change to primary color when casting is active

* only show casting snackbar if we are casting

* dont show cast button if asset is remote and we are not casting

* stop playing media if we seek to an asset that is not remote

* remove https check since it works with local http IP addresses

* remove unneeded imports

* fix recasting when socket closes

* fix info plist formatting

* only show cast button if there is an active websocket connection (ie the server is accessible)

* add device capability bitmask checks

* small comment about bitmask
2025-06-08 21:55:23 -05:00
..
app_bar_dialog fix(mobile): notification, dialog that don't translate properly (#18827) 2025-06-01 21:03:22 -05:00
confirm_dialog.dart feat(mobile): use Weblate for i18n (2) (#17620) 2025-04-15 15:54:26 +00:00
date_time_picker.dart feat(mobile): use Weblate for i18n (2) (#17620) 2025-04-15 15:54:26 +00:00
delayed_loading_indicator.dart refactor(mobile): widgets (#9291) 2024-05-06 23:04:21 -05:00
drag_sheet.dart feat: locked view mobile (#18316) 2025-05-20 13:35:22 +00:00
dropdown_search_menu.dart feat(mobile): use Weblate for i18n (2) (#17620) 2025-04-15 15:54:26 +00:00
fade_in_placeholder_image.dart refactor(mobile): widgets (#9291) 2024-05-06 23:04:21 -05:00
immich_app_bar.dart feat(mobile): add cast support (#18341) 2025-06-08 21:55:23 -05:00
immich_image.dart fix(mobile): stale thumbnail cache (#18351) 2025-05-19 09:25:27 -05:00
immich_loading_indicator.dart chore(mobile): small visual fix and update (#17547) 2025-04-13 08:01:32 -05:00
immich_logo.dart fix(mobile): video player initialization (#17778) 2025-04-22 11:51:20 -04:00
immich_thumbnail.dart fix(mobile): stale thumbnail cache (#18351) 2025-05-19 09:25:27 -05:00
immich_title_text.dart feat(mobile): add support for material themes (#11560) 2024-08-06 14:20:27 +00:00
immich_toast.dart feat: locked view mobile (#18316) 2025-05-20 13:35:22 +00:00
location_picker.dart feat(mobile): use Weblate for i18n (2) (#17620) 2025-04-15 15:54:26 +00:00
scaffold_error_body.dart chore: flutter 3.29.1 (#16730) 2025-03-10 21:46:36 -05:00
search_field.dart chore(mobile): search field in separate widget (#16977) 2025-03-24 14:40:33 -05:00
share_dialog.dart refactor(mobile): widgets (#9291) 2024-05-06 23:04:21 -05:00
thumbhash_placeholder.dart refactor(mobile): widgets (#9291) 2024-05-06 23:04:21 -05:00
transparent_image.dart refactor(mobile): widgets (#9291) 2024-05-06 23:04:21 -05:00
user_avatar.dart refactor(mobile): remove int user id (#16814) 2025-03-18 11:05:37 -05:00
user_circle_avatar.dart feat(mobile): sqlite (#16861) 2025-04-02 08:58:17 -05:00