diff --git a/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js b/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js index 526663ce97..734a068297 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js +++ b/dashboard-ui/bower_components/emby-webcomponents/itemcontextmenu.js @@ -1,9 +1,6 @@ -define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter', 'playbackManager', 'loading'], function (appHost, globalize, connectionManager, itemHelper, embyRouter, playbackManager, loading) { +define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter', 'playbackManager', 'loading', 'appSettings'], function (appHost, globalize, connectionManager, itemHelper, embyRouter, playbackManager, loading, appSettings) { - var isTheater = true; - appHost.appInfo().then(function (result) { - isTheater = result.appName.toLowerCase().indexOf('theater') != -1; - }); + var isMobileApp = window.Dashboard != null; function getCommands(options) { @@ -48,7 +45,7 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter', if (itemHelper.canEdit(user, item.Type)) { - if (!isTheater) { + if (isMobileApp) { if (options.edit !== false) { var text = item.Type == 'Timer' ? globalize.translate('sharedcomponents#Edit') : globalize.translate('sharedcomponents#EditInfo'); @@ -63,7 +60,7 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter', if (itemHelper.canEditImages(user, item.Type)) { - if (!isTheater) { + if (isMobileApp) { if (options.editImages !== false) { commands.push({ name: globalize.translate('sharedcomponents#EditImages'), @@ -92,7 +89,7 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter', }); } - if (!isTheater && options.identify !== false) { + if (isMobileApp && options.identify !== false) { if (itemHelper.canIdentify(user, item.Type)) { commands.push({ name: globalize.translate('sharedcomponents#Identify'), @@ -125,6 +122,13 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter', name: globalize.translate('sharedcomponents#Play'), id: 'resume' }); + + if (isMobileApp && appSettings.enableExternalPlayers()) { + commands.push({ + name: globalize.translate('ButtonPlayExternalPlayer'), + id: 'externalplayer' + }); + } } if (options.playAllFromHere && item.Type != 'Program' && item.Type != 'TvChannel') { @@ -201,7 +205,7 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter', } } - if (!isTheater && options.sync !== false) { + if (isMobileApp && options.sync !== false) { if (itemHelper.canSync(user, item)) { commands.push({ name: globalize.translate('sharedcomponents#Sync'), @@ -385,6 +389,10 @@ define(['apphost', 'globalize', 'connectionManager', 'itemHelper', 'embyRouter', }); break; } + case 'externalplayer': + LibraryBrowser.playInExternalPlayer(itemId); + getResolveFunction(resolve, id)(); + break; case 'album': { embyRouter.showItem(item.AlbumId, item.ServerId); diff --git a/dashboard-ui/bower_components/emby-webcomponents/playmenu.js b/dashboard-ui/bower_components/emby-webcomponents/playmenu.js index eca1a1d580..4023a83150 100644 --- a/dashboard-ui/bower_components/emby-webcomponents/playmenu.js +++ b/dashboard-ui/bower_components/emby-webcomponents/playmenu.js @@ -1,4 +1,6 @@ -define(['actionsheet', 'datetime', 'playbackManager', 'globalize'], function (actionsheet, datetime, playbackManager, globalize) { +define(['actionsheet', 'datetime', 'playbackManager', 'globalize', 'appSettings'], function (actionsheet, datetime, playbackManager, globalize, appSettings) { + + var isMobileApp = window.Dashboard != null; function show(options) { @@ -11,7 +13,9 @@ define(['actionsheet', 'datetime', 'playbackManager', 'globalize'], function (ac var serverId = item.ServerId; var resumePositionTicks = item.UserData ? item.UserData.PlaybackPositionTicks : null; - if (!resumePositionTicks && mediaType != "Audio" && !isFolder) { + var showExternalPlayer = isMobileApp && mediaType == 'Video' && !isFolder && appSettings.enableExternalPlayers(); + + if (!resumePositionTicks && mediaType != "Audio" && !isFolder && !showExternalPlayer) { playbackManager.play({ items: [item] }); @@ -37,6 +41,13 @@ define(['actionsheet', 'datetime', 'playbackManager', 'globalize'], function (ac }); } + if (showExternalPlayer) { + menuItems.push({ + name: globalize.translate('ButtonPlayExternalPlayer'), + id: 'externalplayer' + }); + } + if (playbackManager.canQueueMediaType(mediaType)) { menuItems.push({ name: globalize.translate('sharedcomponents#Queue'), @@ -72,6 +83,9 @@ define(['actionsheet', 'datetime', 'playbackManager', 'globalize'], function (ac serverId: item.ServerId }); break; + case 'externalplayer': + LibraryBrowser.playInExternalPlayer(itemId); + break; case 'resume': playbackManager.play({ ids: [itemId],