diff --git a/dashboard-ui/cordova/android/mediasession.js b/dashboard-ui/cordova/android/mediasession.js index b39267115..e87d4e951 100644 --- a/dashboard-ui/cordova/android/mediasession.js +++ b/dashboard-ui/cordova/android/mediasession.js @@ -171,17 +171,13 @@ .on('positionchange', onStateChanged); } - Dashboard.ready(function () { + Logger.log('binding remotecontrols to MediaController'); - Logger.log('binding remotecontrols to MediaController'); - - $(MediaController).on('playerchange', function () { - - bindToPlayer(MediaController.getCurrentPlayer()); - }); + $(MediaController).on('playerchange', function () { bindToPlayer(MediaController.getCurrentPlayer()); - }); + bindToPlayer(MediaController.getCurrentPlayer()); + })(); \ No newline at end of file diff --git a/dashboard-ui/cordova/connectsdk.js b/dashboard-ui/cordova/connectsdk.js index d0216edb5..4b05e09cd 100644 --- a/dashboard-ui/cordova/connectsdk.js +++ b/dashboard-ui/cordova/connectsdk.js @@ -31,6 +31,6 @@ getDeviceList: getDeviceList }; - Dashboard.ready(initSdk); + initSdk(); })(); \ No newline at end of file diff --git a/dashboard-ui/cordova/ios/backgroundfetch.js b/dashboard-ui/cordova/ios/backgroundfetch.js index 4f17d08b3..fa1350143 100644 --- a/dashboard-ui/cordova/ios/backgroundfetch.js +++ b/dashboard-ui/cordova/ios/backgroundfetch.js @@ -78,12 +78,9 @@ options.syncOfflineUsers = (new Date().getTime() - lastStart) >= offlineUserSyncInterval; } - Dashboard.ready(function () { + require(['localsync'], function () { - require(['localsync'], function () { - - LocalSync.normalizeSyncOptions = normalizeSyncOptions; - }); + LocalSync.normalizeSyncOptions = normalizeSyncOptions; }); pageClassOn('pageshow', "libraryPage", function () { diff --git a/dashboard-ui/cordova/remotecontrols.js b/dashboard-ui/cordova/remotecontrols.js deleted file mode 100644 index 3856d2e15..000000000 --- a/dashboard-ui/cordova/remotecontrols.js +++ /dev/null @@ -1,189 +0,0 @@ -(function () { - - // Reports media playback to the device for lock screen control - - var currentPlayer; - var lastPlayerState; - - function updatePlayerState(state) { - - if (!state.NowPlayingItem) { - hideNowPlayingBar(); - return; - } - - lastPlayerState = state; - - var playState = state.PlayState || {}; - - var nameHtml = MediaController.getNowPlayingNameHtml(state.NowPlayingItem) || ''; - var parts = nameHtml.split('
'); - - var artist = parts.length == 1 ? '' : parts[0]; - var title = parts[parts.length - 1]; - var album = state.NowPlayingItem.Album || ''; - var duration = state.NowPlayingItem.RunTimeTicks ? (state.NowPlayingItem.RunTimeTicks / 10000000) : 0; - var elapsedTime = playState.PositionTicks ? (playState.PositionTicks / 10000000) : 0; - - var url = ''; - var imgHeight = 600; - - var nowPlayingItem = state.NowPlayingItem; - - if (nowPlayingItem.PrimaryImageTag) { - - url = ApiClient.getScaledImageUrl(nowPlayingItem.PrimaryImageItemId, { - type: "Primary", - height: imgHeight, - tag: nowPlayingItem.PrimaryImageTag - }); - } - else if (nowPlayingItem.BackdropImageTag) { - - url = ApiClient.getScaledImageUrl(nowPlayingItem.BackdropItemId, { - type: "Backdrop", - height: imgHeight, - tag: nowPlayingItem.BackdropImageTag, - index: 0 - }); - - } else if (nowPlayingItem.ThumbImageTag) { - - url = ApiClient.getScaledImageUrl(nowPlayingItem.ThumbImageItemId, { - type: "Thumb", - height: imgHeight, - tag: nowPlayingItem.ThumbImageTag - }); - } - - var params = [artist, title, album, url, duration, elapsedTime]; - try { - window.remoteControls.updateMetas(onUpdateMetasSuccess, onUpdateMetasFail, params); - } catch (err) { - onUpdateMetasFail(err); - } - } - - var lastUpdateTime = 0; - - function onStateChanged(e, state) { - - if (e.type == 'positionchange') { - // Try to avoid hammering the document with changes - var now = new Date().getTime(); - if ((now - lastUpdateTime) < 700) { - - return; - } - lastUpdateTime = now; - } - - updatePlayerState(state); - } - - function onPlaybackStart(e, state) { - - Logger.log('nowplaying event: ' + e.type); - - var player = this; - - player.beginPlayerUpdates(); - - onStateChanged.call(player, e, state); - } - - function onPlaybackStopped(e, state) { - - Logger.log('nowplaying event: ' + e.type); - var player = this; - - player.endPlayerUpdates(); - - hideNowPlayingBar(); - } - - function releaseCurrentPlayer() { - - if (currentPlayer) { - - $(currentPlayer).off('playbackstart', onPlaybackStart) - .off('playbackstop', onPlaybackStopped) - .off('playstatechange', onStateChanged) - .off('positionchange', onStateChanged); - - currentPlayer.endPlayerUpdates(); - currentPlayer = null; - - hideNowPlayingBar(); - } - } - - function hideNowPlayingBar() { - - var artist = ""; - var title = ""; - var album = ""; - var image = ""; - var duration = 0; - var elapsedTime = 0; - - var params = [artist, title, album, image, duration, elapsedTime]; - - try { - window.remoteControls.updateMetas(onUpdateMetasSuccess, onUpdateMetasFail, params); - } catch (err) { - onUpdateMetasFail(err); - } - } - - function onUpdateMetasSuccess() { - - Logger.log('onUpdateMetasSuccess'); - } - - function onUpdateMetasFail(fail) { - - Logger.log('onUpdateMetasFail: ' + fail); - } - - function bindToPlayer(player) { - - releaseCurrentPlayer(); - - currentPlayer = player; - - if (!player.isLocalPlayer) { - return; - } - - Logger.log('binding remotecontrols to MediaPlayer'); - - player.getPlayerState().then(function (state) { - - if (state.NowPlayingItem) { - player.beginPlayerUpdates(); - } - - onStateChanged.call(player, { type: 'init' }, state); - }); - - $(player).on('playbackstart', onPlaybackStart) - .on('playbackstop', onPlaybackStopped) - .on('playstatechange', onStateChanged) - .on('positionchange', onStateChanged); - } - - Dashboard.ready(function () { - - Logger.log('binding remotecontrols to MediaController'); - - $(MediaController).on('playerchange', function () { - - bindToPlayer(MediaController.getCurrentPlayer()); - }); - - bindToPlayer(MediaController.getCurrentPlayer()); - - }); - -})(); \ No newline at end of file diff --git a/dashboard-ui/scripts/site.js b/dashboard-ui/scripts/site.js index 6f1b88ff5..ef99d2c1a 100644 --- a/dashboard-ui/scripts/site.js +++ b/dashboard-ui/scripts/site.js @@ -2119,10 +2119,6 @@ var AppInfo = {}; function onAppReady(promiseResolve) { - if (browserInfo.msie) { - require(['devices/ie/ie']); - } - // Do these now to prevent a flash of content if (AppInfo.isNativeApp && browserInfo.android) { Dashboard.importCss('devices/android/android.css'); @@ -2139,31 +2135,20 @@ var AppInfo = {}; } if (Dashboard.isRunningInCordova()) { - require(['cordova/connectsdk', 'scripts/registrationservices', 'cordova/back']); + require(['scripts/registrationservices', 'cordova/back']); if (browserInfo.android) { - require(['cordova/android/androidcredentials', 'cordova/android/mediasession']); - } else { - require(['cordova/volume']); - } - - if (browserInfo.safari) { - require(['cordova/ios/orientation']); - } - - } else { - if (browserInfo.chrome) { - require(['scripts/chromecast']); + require(['cordova/android/androidcredentials']); } } var deps = []; - if (AppInfo.isNativeApp && browserInfo.safari) { + if (browserInfo.msie) { + deps.push('devices/ie/ie'); + } - if (Dashboard.capabilities().SupportsSync) { - deps.push('cordova/ios/backgroundfetch'); - } + if (AppInfo.isNativeApp && browserInfo.safari) { deps.push('cordova/ios/tabbar'); } @@ -2195,15 +2180,39 @@ var AppInfo = {}; postInitDependencies.push('scripts/thememediaplayer'); postInitDependencies.push('scripts/remotecontrol'); + postInitDependencies.push('css!css/notifications.css'); + postInitDependencies.push('css!css/notifications.css'); + + if (Dashboard.isRunningInCordova()) { + + postInitDependencies.push('cordova/connectsdk'); + + if (browserInfo.android) { + postInitDependencies.push('cordova/android/mediasession'); + } else { + postInitDependencies.push('cordova/volume'); + } + + if (browserInfo.safari) { + + postInitDependencies.push('cordova/ios/orientation'); + + if (Dashboard.capabilities().SupportsSync) { + + postInitDependencies.push('cordova/ios/backgroundfetch'); + } + } + + } else if (browserInfo.chrome) { + postInitDependencies.push('scripts/chromecast'); + } + + if (AppInfo.enableNowPlayingBar) { + postInitDependencies.push('scripts/nowplayingbar'); + } + require(postInitDependencies); - - Dashboard.importCss('css/notifications.css'); - Dashboard.importCss('css/chromecast.css'); }); - - if (AppInfo.enableNowPlayingBar) { - require(['scripts/nowplayingbar']); - } } function getCordovaHostingAppInfo() {