1
0
Fork 0
mirror of https://github.com/jellyfin/jellyfin-web synced 2025-03-30 19:56:21 +00:00

update script loading

This commit is contained in:
Luke Pulverenti 2015-12-02 16:05:08 -05:00
parent 3118991c21
commit ad93f5ca7f
5 changed files with 44 additions and 231 deletions

View file

@ -171,8 +171,6 @@
.on('positionchange', onStateChanged);
}
Dashboard.ready(function () {
Logger.log('binding remotecontrols to MediaController');
$(MediaController).on('playerchange', function () {
@ -182,6 +180,4 @@
bindToPlayer(MediaController.getCurrentPlayer());
});
})();

View file

@ -31,6 +31,6 @@
getDeviceList: getDeviceList
};
Dashboard.ready(initSdk);
initSdk();
})();

View file

@ -78,13 +78,10 @@
options.syncOfflineUsers = (new Date().getTime() - lastStart) >= offlineUserSyncInterval;
}
Dashboard.ready(function () {
require(['localsync'], function () {
LocalSync.normalizeSyncOptions = normalizeSyncOptions;
});
});
pageClassOn('pageshow', "libraryPage", function () {

View file

@ -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('<br/>');
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());
});
})();

View file

@ -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,32 +2135,21 @@ 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 (Dashboard.capabilities().SupportsSync) {
deps.push('cordova/ios/backgroundfetch');
if (browserInfo.msie) {
deps.push('devices/ie/ie');
}
if (AppInfo.isNativeApp && browserInfo.safari) {
deps.push('cordova/ios/tabbar');
}
@ -2195,15 +2180,39 @@ var AppInfo = {};
postInitDependencies.push('scripts/thememediaplayer');
postInitDependencies.push('scripts/remotecontrol');
require(postInitDependencies);
postInitDependencies.push('css!css/notifications.css');
postInitDependencies.push('css!css/notifications.css');
Dashboard.importCss('css/notifications.css');
Dashboard.importCss('css/chromecast.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) {
require(['scripts/nowplayingbar']);
postInitDependencies.push('scripts/nowplayingbar');
}
require(postInitDependencies);
});
}
function getCordovaHostingAppInfo() {