immich/mobile/lib/interfaces
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 +07:00
..
activity_api.interface.dart
album.interface.dart refactor: user entity (#16655) 2025-03-12 08:56:56 +07:00
album_api.interface.dart
album_media.interface.dart
asset.interface.dart fix(mobile): recently added -> taken (#17780) 2025-04-23 12:38:25 +07:00
asset_api.interface.dart feat(mobile): add cast support (#18341) 2025-06-08 21:55:23 +07:00
asset_media.interface.dart
auth.interface.dart
auth_api.interface.dart feat: locked view mobile (#18316) 2025-05-20 13:35:22 +07:00
backup_album.interface.dart refactor(mobile): backup provider (#16360) 2025-02-27 09:56:23 +07:00
biometric.interface.dart feat: locked view mobile (#18316) 2025-05-20 13:35:22 +07:00
cast_destination_service.interface.dart feat(mobile): add cast support (#18341) 2025-06-08 21:55:23 +07:00
database.interface.dart
download.interface.dart feat(mobile): add bulk download functionality (#18878) 2025-06-04 09:49:43 +07:00
etag.interface.dart refactor(mobile): remove int user id (#16814) 2025-03-18 11:05:37 +07:00
file_media.interface.dart
folder_api.interface.dart feat(mobile): Folder View for mobile (#15047) 2025-03-06 17:27:43 +07:00
local_files_manager.interface.dart fix(mobile): auto trash using MANAGE_MEDIA (#17828) 2025-04-24 19:09:50 +07:00
network.interface.dart
partner.interface.dart refactor: user entity (#16655) 2025-03-12 08:56:56 +07:00
partner_api.interface.dart refactor: user entity (#16655) 2025-03-12 08:56:56 +07:00
person_api.interface.dart fix(mobile): search page issues (#15804) 2025-01-31 03:12:57 +07:00
secure_storage.interface.dart feat: locked view mobile (#18316) 2025-05-20 13:35:22 +07:00
sessions_api.interface.dart feat(mobile): add cast support (#18341) 2025-06-08 21:55:23 +07:00
share_handler.interface.dart
timeline.interface.dart fix(mobile): Showing videos of partner in search page quick links (#18855) 2025-06-02 09:35:18 +07:00
upload.interface.dart