diff --git a/cast/src/receiver/entrypoint.ts b/cast/src/receiver/entrypoint.ts index e5c9791276..19053a23cd 100644 --- a/cast/src/receiver/entrypoint.ts +++ b/cast/src/receiver/entrypoint.ts @@ -28,11 +28,29 @@ const setTouchControlsVisibility = (visible: boolean) => { } }; +const playDummyMedia = () => { + const playerManager = castContext.getPlayerManager(); + const loadRequestData = new cast.framework.messages.LoadRequestData(); + loadRequestData.autoplay = true; + loadRequestData.media = new cast.framework.messages.MediaInformation(); + loadRequestData.media.contentId = + "https://www.home-assistant.io/images/blog/2018-09-thinking-big/social.png"; + loadRequestData.media.contentType = "image/jpeg"; + loadRequestData.media.streamType = cast.framework.messages.StreamType.NONE; + const metadata = new cast.framework.messages.GenericMediaMetadata(); + metadata.title = "Home Assistant Lovelace"; + loadRequestData.media.metadata = metadata; + + loadRequestData.requestId = 0; + playerManager.load(loadRequestData); +}; + const showLovelaceController = () => { mediaPlayer.style.display = "none"; lovelaceController.style.display = "initial"; document.body.setAttribute("style", "overflow-y: auto !important"); setTouchControlsVisibility(false); + playDummyMedia(); }; const showMediaPlayer = () => { @@ -103,6 +121,12 @@ const playerManager = castContext.getPlayerManager(); playerManager.setMessageInterceptor( cast.framework.messages.MessageType.LOAD, (loadRequestData) => { + if ( + loadRequestData.media.contentId === + "https://www.home-assistant.io/images/blog/2018-09-thinking-big/social.png" + ) { + return loadRequestData; + } // We received a play media command, hide Lovelace and show media player showMediaPlayer(); const media = loadRequestData.media; diff --git a/cast/src/receiver/layout/hc-main.ts b/cast/src/receiver/layout/hc-main.ts index 4e47ad61ae..207d46bb4a 100644 --- a/cast/src/receiver/layout/hc-main.ts +++ b/cast/src/receiver/layout/hc-main.ts @@ -107,6 +107,7 @@ export class HcMain extends HassElement { this._sendStatus(); } }); + this.addEventListener("dialog-closed", this._dialogClosed); } private _sendStatus(senderId?: string) { @@ -131,6 +132,10 @@ export class HcMain extends HassElement { } } + private _dialogClosed = () => { + document.body.setAttribute("style", "overflow-y: auto !important"); + }; + private async _handleGetStatusMessage(msg: GetStatusMessage) { this._sendStatus(msg.senderId!); }