diff --git a/dashboard-ui/bower_components/emby-webcomponents/.bower.json b/dashboard-ui/bower_components/emby-webcomponents/.bower.json index e522593085..d611a06519 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/.bower.json +++ b/dashboard-ui/bower_components/emby-webcomponents/.bower.json @@ -14,12 +14,12 @@ }, "devDependencies": {}, "ignore": [], - "version": "1.4.442", - "_release": "1.4.442", + "version": "1.4.443", + "_release": "1.4.443", "_resolution": { "type": "version", - "tag": "1.4.442", - "commit": "f4fbcdd53e93fcc3c5a8ce58c5f8ba63be77a4ee" + "tag": "1.4.443", + "commit": "06bd97079047cdcad2a97f6475fe7022bc1c819f" }, "_source": "https://github.com/MediaBrowser/emby-webcomponents.git", "_target": "^1.2.1", diff --git a/dashboard-ui/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js b/dashboard-ui/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js index 93d342d333..3c2e0dd1a5 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js +++ b/dashboard-ui/bower_components/emby-webcomponents/htmlvideoplayer/plugin.js @@ -207,7 +207,7 @@ define(['browser', 'pluginManager', 'events', 'apphost', 'loading', 'playbackMan hls.on(Hls.Events.ERROR, function (event, data) { - console.log('HLS Error: Type: ' + data.type + ' Details: ' + (data.details || '') + ' Fatal: ' + data.fatal); + console.log('HLS Error: Type: ' + data.type + ' Details: ' + (data.details || '') + ' Fatal: ' + (data.fatal || false)); if (data.fatal) { switch (data.type) { diff --git a/dashboard-ui/bower_components/emby-webcomponents/playback/playbackmanager.js b/dashboard-ui/bower_components/emby-webcomponents/playback/playbackmanager.js index b7f87bb22e..4d09435f87 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/playback/playbackmanager.js +++ b/dashboard-ui/bower_components/emby-webcomponents/playback/playbackmanager.js @@ -1,4 +1,4 @@ -define(['events', 'datetime', 'appSettings', 'pluginManager', 'userSettings', 'globalize', 'connectionManager', 'loading', 'serverNotifications'], function (events, datetime, appSettings, pluginManager, userSettings, globalize, connectionManager, loading, serverNotifications) { +define(['events', 'datetime', 'appSettings', 'pluginManager', 'userSettings', 'globalize', 'connectionManager', 'loading', 'serverNotifications', 'apphost', 'fullscreenManager'], function (events, datetime, appSettings, pluginManager, userSettings, globalize, connectionManager, loading, serverNotifications, apphost, fullscreenManager) { 'use strict'; function enableLocalPlaylistManagement(player) { @@ -180,7 +180,7 @@ define(['events', 'datetime', 'appSettings', 'pluginManager', 'userSettings', 'g if (player.isLocalPlayer) { // Full list // https://github.com/MediaBrowser/MediaBrowser/blob/master/MediaBrowser.Model/Session/GeneralCommand.cs - return [ + var list = [ "GoHome", "GoToSettings", "VolumeUp", @@ -197,6 +197,12 @@ define(['events', 'datetime', 'appSettings', 'pluginManager', 'userSettings', 'g "DisplayMessage", "SetRepeatMode" ]; + + if (apphost.supports('fullscreenchange')) { + list.push('ToggleFullscreen'); + } + + return list; } throw new Error('player must define supported commands'); @@ -681,6 +687,30 @@ define(['events', 'datetime', 'appSettings', 'pluginManager', 'userSettings', 'g }); }; + self.isFullscreen = function (player) { + + player = player || currentPlayer; + if (!player.isLocalPlayer || player.isFullscreen) { + return player.isFullscreen(); + } + + return fullscreenManager.isFullScreen(); + }; + + self.toggleFullscreen = function(player) { + + player = player || currentPlayer; + if (!player.isLocalPlayer || player.toggleFulscreen) { + return player.toggleFulscreen(); + } + + if (fullscreenManager.isFullScreen()) { + fullscreenManager.exitFullscreen(); + } else { + fullscreenManager.requestFullscreen(); + } + }; + self.getSubtitleStreamIndex = function (player) { player = player || currentPlayer; diff --git a/dashboard-ui/scripts/videoosd.js b/dashboard-ui/scripts/videoosd.js index cf80a0f1e6..86ebe0c802 100644 --- a/dashboard-ui/scripts/videoosd.js +++ b/dashboard-ui/scripts/videoosd.js @@ -1,4 +1,4 @@ -define(['playbackManager', 'dom', 'inputmanager', 'datetime', 'itemHelper', 'mediaInfo', 'focusManager', 'imageLoader', 'scrollHelper', 'events', 'connectionManager', 'browser', 'globalize', 'apphost', 'fullscreenManager', 'scrollStyles', 'emby-slider'], function (playbackManager, dom, inputManager, datetime, itemHelper, mediaInfo, focusManager, imageLoader, scrollHelper, events, connectionManager, browser, globalize, appHost, fullscreenManager) { +define(['playbackManager', 'dom', 'inputmanager', 'datetime', 'itemHelper', 'mediaInfo', 'focusManager', 'imageLoader', 'scrollHelper', 'events', 'connectionManager', 'browser', 'globalize', 'apphost', 'scrollStyles', 'emby-slider'], function (playbackManager, dom, inputManager, datetime, itemHelper, mediaInfo, focusManager, imageLoader, scrollHelper, events, connectionManager, browser, globalize, appHost) { 'use strict'; function seriesImageUrl(item, options) { @@ -379,7 +379,7 @@ } function updateFullscreenIcon() { - if (fullscreenManager.isFullScreen()) { + if (playbackManager.isFullscreen(currentPlayer)) { view.querySelector('.btnFullscreen i').innerHTML = ''; } else { view.querySelector('.btnFullscreen i').innerHTML = ''; @@ -403,7 +403,6 @@ showOsd(); inputManager.on(window, onInputCommand); - updateFullscreenIcon(); }); view.addEventListener('viewbeforehide', function () { @@ -421,10 +420,6 @@ view.querySelector('.btnCast').classList.remove('hide'); } - if (appHost.supports('fullscreenchange')) { - view.querySelector('.btnFullscreen').classList.remove('hide'); - } - view.querySelector('.btnCast').addEventListener('click', function () { var btn = this; require(['playerSelectionMenu'], function (playerSelectionMenu) { @@ -433,11 +428,7 @@ }); view.querySelector('.btnFullscreen').addEventListener('click', function () { - if (fullscreenManager.isFullScreen()) { - fullscreenManager.exitFullscreen(); - } else { - fullscreenManager.requestFullscreen(); - } + playbackManager.toggleFullscreen(currentPlayer); }); view.querySelector('.btnSettings').addEventListener('click', onSettingsButtonClick); @@ -635,6 +626,14 @@ } else { view.querySelector('.btnSettings').classList.add('hide'); } + + if (supportedCommands.indexOf('ToggleFullscreen') === -1) { + view.querySelector('.btnFullscreen').classList.add('hide'); + } else { + view.querySelector('.btnFullscreen').classList.remove('hide'); + } + + updateFullscreenIcon(); } function updateTimeDisplay(positionTicks, runtimeTicks) {