diff --git a/src/components/appRouter.js b/src/components/appRouter.js index d8fe4edb98..e6bd86336b 100644 --- a/src/components/appRouter.js +++ b/src/components/appRouter.js @@ -1,6 +1,7 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdrop', 'browser', 'page', 'appSettings', 'apphost', 'connectionManager'], function (loading, globalize, events, viewManager, skinManager, backdrop, browser, page, appSettings, appHost, connectionManager) { 'use strict'; + appHost = appHost.default || appHost; viewManager = viewManager.default || viewManager; browser = browser.default || browser; loading = loading.default || loading; @@ -330,8 +331,8 @@ define(['loading', 'globalize', 'events', 'viewManager', 'skinManager', 'backdro } if (shouldExitApp) { - if (appHost.default.supports('exit')) { - appHost.default.exit(); + if (appHost.supports('exit')) { + appHost.exit(); return; } return; diff --git a/src/components/apphost.js b/src/components/apphost.js index 8563321957..a8e26223a5 100644 --- a/src/components/apphost.js +++ b/src/components/apphost.js @@ -113,14 +113,6 @@ function getDeviceName() { deviceName += ' Android'; } - if (browser.ipad) { - deviceName += ' iPad'; - } else if (browser.iphone) { - deviceName += ' iPhone'; - } else if (browser.android) { - deviceName += ' Android'; - } - return deviceName; } @@ -326,7 +318,7 @@ function askForExit() { let deviceId; let deviceName; const appName = 'Jellyfin Web'; -const appVersion = '10.6.0'; +const appVersion = '10.7.0'; const appHost = { getWindowState: function () { @@ -383,13 +375,6 @@ const appHost = { getPushTokenInfo: function () { return {}; }, - setThemeColor: function (color) { - const metaThemeColor = document.querySelector('meta[name=theme-color]'); - - if (metaThemeColor) { - metaThemeColor.setAttribute('content', color); - } - }, setUserScalable: function (scalable) { if (!browser.tv) { const att = scalable ? 'width=device-width, initial-scale=1, minimum-scale=1, user-scalable=yes' : 'width=device-width, initial-scale=1, minimum-scale=1, maximum-scale=1, user-scalable=no'; diff --git a/src/components/multiSelect/multiSelect.js b/src/components/multiSelect/multiSelect.js index feba0ade5d..d922aee84a 100644 --- a/src/components/multiSelect/multiSelect.js +++ b/src/components/multiSelect/multiSelect.js @@ -196,7 +196,7 @@ import 'css!./multiSelect'; }); } - if (user.Policy.EnableContentDownloading && appHost.default.supports('filedownload')) { + if (user.Policy.EnableContentDownloading && appHost.supports('filedownload')) { menuItems.push({ name: globalize.translate('ButtonDownload'), id: 'download', diff --git a/src/components/qualityOptions.js b/src/components/qualityOptions.js index ff6b04d1f1..63d9557c7b 100644 --- a/src/components/qualityOptions.js +++ b/src/components/qualityOptions.js @@ -12,7 +12,6 @@ export function getVideoQualityOptions(options) { } var maxAllowedWidth = videoWidth || 4096; - //var maxAllowedHeight = videoHeight || 2304; var qualityOptions = []; diff --git a/src/components/remotecontrol/remotecontrol.js b/src/components/remotecontrol/remotecontrol.js index b37656124f..fd42466e91 100644 --- a/src/components/remotecontrol/remotecontrol.js +++ b/src/components/remotecontrol/remotecontrol.js @@ -1,6 +1,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageLoader', 'playbackManager', 'nowPlayingHelper', 'events', 'connectionManager', 'apphost', 'globalize', 'layoutManager', 'userSettings', 'cardBuilder', 'itemContextMenu', 'cardStyle', 'emby-itemscontainer', 'css!./remotecontrol.css', 'emby-ratingbutton'], function (browser, datetime, backdrop, libraryBrowser, listView, imageLoader, playbackManager, nowPlayingHelper, events, connectionManager, appHost, globalize, layoutManager, userSettings, cardBuilder, itemContextMenu) { 'use strict'; + appHost = appHost.default || appHost; playbackManager = playbackManager.default || playbackManager; layoutManager = layoutManager.default || layoutManager; @@ -398,7 +399,7 @@ define(['browser', 'datetime', 'backdrop', 'libraryBrowser', 'listView', 'imageL showVolumeSlider = false; } - if (currentPlayer.isLocalPlayer && appHost.default.supports('physicalvolumecontrol')) { + if (currentPlayer.isLocalPlayer && appHost.supports('physicalvolumecontrol')) { showMuteButton = false; showVolumeSlider = false; } diff --git a/src/plugins/bookPlayer/plugin.js b/src/plugins/bookPlayer/plugin.js index d35e248893..415bd7b958 100644 --- a/src/plugins/bookPlayer/plugin.js +++ b/src/plugins/bookPlayer/plugin.js @@ -94,7 +94,9 @@ export class BookPlayer { onWindowKeyUp(e) { const key = keyboardnavigation.getKeyName(e); - const rendition = this._rendition; + + // TODO: depending on the event this can be the document or the rendition itself + const rendition = this._rendition || this; const book = rendition.book; if (this._loaded === false) return; diff --git a/src/plugins/experimentalWarnings/plugin.js b/src/plugins/experimentalWarnings/plugin.js index d97bd9a1a7..76b45fad4e 100644 --- a/src/plugins/experimentalWarnings/plugin.js +++ b/src/plugins/experimentalWarnings/plugin.js @@ -1,6 +1,8 @@ define(['connectionManager', 'globalize', 'userSettings', 'apphost'], function (connectionManager, globalize, userSettings, appHost) { 'use strict'; + appHost = appHost.default || appHost; + // TODO: Replace with date-fns // https://stackoverflow.com/questions/6117814/get-week-of-year-in-javascript-like-in-php function getWeek(date) { @@ -12,7 +14,7 @@ define(['connectionManager', 'globalize', 'userSettings', 'apphost'], function ( } function showMessage(text, userSettingsKey, appHostFeature) { - if (appHost.default.supports(appHostFeature)) { + if (appHost.supports(appHostFeature)) { return Promise.resolve(); } diff --git a/src/scripts/gamepadtokey.js b/src/scripts/gamepadtokey.js index 20c01bdcba..28103bb2db 100644 --- a/src/scripts/gamepadtokey.js +++ b/src/scripts/gamepadtokey.js @@ -22,6 +22,8 @@ require(['apphost'], function (appHost) { 'use strict'; + appHost = appHost.default || appHost; + var _GAMEPAD_A_BUTTON_INDEX = 0; var _GAMEPAD_B_BUTTON_INDEX = 1; var _GAMEPAD_DPAD_UP_BUTTON_INDEX = 12; @@ -187,7 +189,7 @@ require(['apphost'], function (appHost) { return false; } - if (appHost.default.getWindowState() === 'Minimized') { + if (appHost.getWindowState() === 'Minimized') { return false; } diff --git a/src/scripts/libraryMenu.js b/src/scripts/libraryMenu.js index 2bf8c3b3a2..5ebfd632e8 100644 --- a/src/scripts/libraryMenu.js +++ b/src/scripts/libraryMenu.js @@ -1,6 +1,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', 'viewManager', 'libraryBrowser', 'appRouter', 'apphost', 'playbackManager', 'syncPlayManager', 'groupSelectionMenu', 'browser', 'globalize', 'scripts/imagehelper', 'paper-icon-button-light', 'material-icons', 'scrollStyles', 'flexStyles'], function (dom, layoutManager, inputManager, connectionManager, events, viewManager, libraryBrowser, appRouter, appHost, playbackManager, syncPlayManager, groupSelectionMenu, browser, globalize, imageHelper) { 'use strict'; + appHost = appHost.default || appHost; viewManager = viewManager.default || viewManager; playbackManager = playbackManager.default || playbackManager; browser = browser.default || browser; @@ -279,7 +280,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', ' html += globalize.translate('HeaderUser'); html += ''; - if (appHost.default.supports('multiserver')) { + if (appHost.supports('multiserver')) { html += '' + globalize.translate('ButtonSelectServer') + ''; } @@ -591,7 +592,7 @@ define(['dom', 'layoutManager', 'inputManager', 'connectionManager', 'events', ' showBySelector('.lnkSyncToOtherDevices', false); } - if (user.Policy.EnableContentDownloading && appHost.default.supports('sync')) { + if (user.Policy.EnableContentDownloading && appHost.supports('sync')) { showBySelector('.libraryMenuDownloads', true); } else { showBySelector('.libraryMenuDownloads', false); diff --git a/src/scripts/site.js b/src/scripts/site.js index 592bad66c1..8c990077f3 100644 --- a/src/scripts/site.js +++ b/src/scripts/site.js @@ -200,8 +200,8 @@ var Dashboard = { SupportsPersistentIdentifier: self.appMode === 'cordova' || self.appMode === 'android', SupportsMediaControl: true }; - appHost.default.getPushTokenInfo(); - return capabilities = Object.assign(capabilities, appHost.default.getPushTokenInfo()); + appHost.getPushTokenInfo(); + return capabilities = Object.assign(capabilities, appHost.getPushTokenInfo()); }, selectServer: function () { if (window.NativeShell && typeof window.NativeShell.selectServer === 'function') { @@ -272,13 +272,15 @@ function initClient() { function createConnectionManager() { return require(['connectionManagerFactory', 'apphost', 'credentialprovider', 'events', 'userSettings'], function (ConnectionManager, appHost, credentialProvider, events, userSettings) { + appHost = appHost.default || appHost; + var credentialProviderInstance = new credentialProvider(); - var promises = [appHost.default.init()]; + var promises = [appHost.init()]; return Promise.all(promises).then(function (responses) { var capabilities = Dashboard.capabilities(appHost); - var connectionManager = new ConnectionManager(credentialProviderInstance, appHost.default.appName(), appHost.default.appVersion(), appHost.default.deviceName(), appHost.default.deviceId(), capabilities); + var connectionManager = new ConnectionManager(credentialProviderInstance, appHost.appName(), appHost.appVersion(), appHost.deviceName(), appHost.deviceId(), capabilities); defineConnectionManager(connectionManager); bindConnectionManagerEvents(connectionManager, events, userSettings); @@ -289,7 +291,7 @@ function initClient() { return require(['apiclient'], function (apiClientFactory) { console.debug('creating ApiClient singleton'); - var apiClient = new apiClientFactory(Dashboard.serverAddress(), appHost.default.appName(), appHost.default.appVersion(), appHost.default.deviceName(), appHost.default.deviceId()); + var apiClient = new apiClientFactory(Dashboard.serverAddress(), appHost.appName(), appHost.appVersion(), appHost.deviceName(), appHost.deviceId()); apiClient.enableAutomaticNetworking = false; apiClient.manualAddressOnly = true; @@ -468,6 +470,8 @@ function initClient() { } require(['apphost', 'css!assets/css/librarybrowser'], function (appHost) { + appHost = appHost.default || appHost; + loadPlugins(appHost, browser).then(function () { onAppReady(browser); }); @@ -480,7 +484,7 @@ function initClient() { require(['webSettings'], function (webSettings) { webSettings.getPlugins().then(function (list) { // these two plugins are dependent on features - if (!appHost.default.supports('remotecontrol')) { + if (!appHost.supports('remotecontrol')) { list.splice(list.indexOf('sessionPlayer'), 1); if (!browser.chrome && !browser.opera) { @@ -516,6 +520,8 @@ function initClient() { // ensure that appHost is loaded in this point require(['apphost', 'appRouter'], function (appHost, appRouter) { + appHost = appHost.default || appHost; + window.Emby = {}; console.debug('onAppReady: loading dependencies'); @@ -537,13 +543,13 @@ function initClient() { require(['components/nowPlayingBar/nowPlayingBar']); } - if (appHost.default.supports('remotecontrol')) { + if (appHost.supports('remotecontrol')) { require(['playerSelectionMenu', 'components/playback/remotecontrolautoplay']); } require(['libraries/screensavermanager']); - if (!appHost.default.supports('physicalvolumecontrol') || browser.touch) { + if (!appHost.supports('physicalvolumecontrol') || browser.touch) { require(['components/playback/volumeosd']); }