From 11d6b7bf87780fa0d691464bf3d6836b908c44bc Mon Sep 17 00:00:00 2001 From: Felipe Santos Date: Mon, 9 May 2022 20:30:30 -0300 Subject: [PATCH] Only show media players capable of casting --- src/card.ts | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/card.ts b/src/card.ts index 3e9d31e0..51f010c0 100644 --- a/src/card.ts +++ b/src/card.ts @@ -86,6 +86,7 @@ import { getOverriddenConfig, getOverridesByKey, } from './card-condition.js'; +import { supportsFeature } from './icons/update.js'; /** A note on media callbacks: * @@ -470,9 +471,21 @@ export class FrigateCard extends LitElement { }); } - const mediaPlayers = Object.keys(this._hass?.states || {}).filter((entity) => - entity.startsWith('media_player.'), - ); + const isValidMediaPlayer = (entity: string): boolean => { + if (entity.startsWith('media_player.')) { + const stateObj = this._hass?.states[entity]; + + // Taken from https://github.dev/home-assistant/frontend/blob/b5861869e39290fd2e15737e89571dfc543b3ad3/src/data/media-player.ts#L93 + const SUPPORT_BROWSE_MEDIA = 131072; + + if (stateObj && supportsFeature(stateObj, SUPPORT_BROWSE_MEDIA)) { + return true; + } + } + return false; + } + + const mediaPlayers = Object.keys(this._hass?.states || {}).filter(isValidMediaPlayer); if ( mediaPlayers.length && (this._view?.isViewerView() ||