diff --git a/src/components/upnextdialog/upnextdialog.js b/src/components/upnextdialog/upnextdialog.js index 2434744f24..ac6461ef8b 100644 --- a/src/components/upnextdialog/upnextdialog.js +++ b/src/components/upnextdialog/upnextdialog.js @@ -6,6 +6,7 @@ import layoutManager from '../layoutManager'; import focusManager from '../focusManager'; import globalize from '../../scripts/globalize'; import itemHelper from '../itemHelper'; +import ServerConnections from '../ServerConnections'; import './upnextdialog.scss'; import '../../elements/emby-button/emby-button'; import '../../styles/flexstyles.scss'; @@ -54,9 +55,9 @@ function setNextVideoText() { const timeText = '' + globalize.translate('HeaderSecondsValue', secondsRemaining) + ''; - const nextVideoText = instance.itemType === 'Episode' ? - globalize.translate('HeaderNextEpisodePlayingInValue', timeText) : - globalize.translate('HeaderNextVideoPlayingInValue', timeText); + const nextVideoText = instance.showStaticNextText ? + globalize.translate('HeaderNextItem', globalize.translate(instance.itemType)) : + globalize.translate('HeaderNextItemPlayingInValue', globalize.translate(instance.itemType), timeText); elem.querySelector('.upNextDialog-nextVideoText').innerHTML = nextVideoText; } @@ -104,7 +105,9 @@ async function onStartNowClick() { } } -function init(instance, options) { +async function init(instance, options) { + instance.showStaticNextText = await showStaticNextText(options.nextItem); + options.parent.innerHTML = getHtml(); options.parent.classList.add('hide'); @@ -199,12 +202,19 @@ function startComingUpNextHideTimer(instance) { setNextVideoText.call(instance); clearCountdownTextTimeout(instance); - instance._countdownTextTimeout = setInterval(setNextVideoText.bind(instance), 400); + if (!instance.showStaticNextText) instance._countdownTextTimeout = setInterval(setNextVideoText.bind(instance), 400); +} + +async function showStaticNextText(nextItem) { + const apiClient = ServerConnections.getApiClient(nextItem); + const currentUser = await apiClient.getCurrentUser(); + return !currentUser.Configuration.EnableNextEpisodeAutoPlay; } class UpNextDialog { constructor(options) { this.options = options; + this.showStaticNextText = false; // default to showing countdown text init(this, options); } @@ -235,9 +245,9 @@ class UpNextDialog { hideComingUpNext.call(this); this.options = null; + this.showStaticNextText = false; this.itemType = null; } } export default UpNextDialog; - diff --git a/src/strings/en-us.json b/src/strings/en-us.json index ffdcd9bfc2..3df5e31c7c 100644 --- a/src/strings/en-us.json +++ b/src/strings/en-us.json @@ -441,8 +441,8 @@ "HeaderNewApiKey": "New API Key", "HeaderNewDevices": "New Devices", "HeaderNewRepository": "New Repository", - "HeaderNextEpisodePlayingInValue": "Next Episode Playing in {0}", - "HeaderNextVideoPlayingInValue": "Next Video Playing in {0}", + "HeaderNextItem": "Next {0}", + "HeaderNextItemPlayingInValue": "Next {0} Playing in {1}", "HeaderNoLyrics": "No lyrics found", "HeaderOnNow": "On Now", "HeaderOtherItems": "Other Items",