mirror of
https://github.com/jellyfin/jellyfin-web
synced 2025-03-30 19:56:21 +00:00
make screensaver manager get user settings
This commit is contained in:
parent
4441c32c4b
commit
f28074fb9e
3 changed files with 50 additions and 52 deletions
|
@ -58,6 +58,7 @@ define(["pluginManager"], function (pluginManager) {
|
||||||
var timing = { duration: 900, iterations: iterations, easing: "cubic-bezier(0.215, 0.610, 0.355, 1.000)" };
|
var timing = { duration: 900, iterations: iterations, easing: "cubic-bezier(0.215, 0.610, 0.355, 1.000)" };
|
||||||
return elem.animate(keyframes, timing);
|
return elem.animate(keyframes, timing);
|
||||||
}
|
}
|
||||||
|
|
||||||
function shake(elem, iterations) {
|
function shake(elem, iterations) {
|
||||||
var keyframes = [
|
var keyframes = [
|
||||||
{ transform: "translate3d(0, 0, 0)", offset: 0 },
|
{ transform: "translate3d(0, 0, 0)", offset: 0 },
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
define(["events", "playbackManager", "pluginManager"], function (events, playbackManager, pluginManager) {
|
define(["events", "playbackManager", "pluginManager", "inputManager", "connectionManager", "userSettings"], function (events, playbackManager, pluginManager, inputManager, connectionManager, userSettings) {
|
||||||
|
"use strict";
|
||||||
|
|
||||||
function getMinIdleTime() {
|
function getMinIdleTime() {
|
||||||
// Returns the minimum amount of idle time required before the screen saver can be displayed
|
// Returns the minimum amount of idle time required before the screen saver can be displayed
|
||||||
//return 3000;
|
//time units used Millisecond
|
||||||
return 180000;
|
return 180000;
|
||||||
}
|
}
|
||||||
|
|
||||||
var lastFunctionalEvent = 0;
|
var lastFunctionalEvent = 0;
|
||||||
|
|
||||||
function getFunctionalEventIdleTime() {
|
function getFunctionalEventIdleTime() {
|
||||||
return new Date().getTime() - lastFunctionalEvent;
|
return new Date().getTime() - lastFunctionalEvent;
|
||||||
}
|
}
|
||||||
|
@ -18,6 +20,37 @@ define(["events", "playbackManager", "pluginManager"], function (events, playbac
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var isLoggedIn;
|
||||||
|
var defaultOption = isLoggedIn ? "backdropscreensaver" : "logoscreensaver";
|
||||||
|
|
||||||
|
function getScreensaverPlugin() {
|
||||||
|
|
||||||
|
var apiClient = connectionManager.currentApiClient();
|
||||||
|
|
||||||
|
if (apiClient && apiClient.isLoggedIn()) {
|
||||||
|
isLoggedIn = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
var option;
|
||||||
|
try {
|
||||||
|
option = userSettings.get("screensaver", false);
|
||||||
|
} catch (err) {
|
||||||
|
option = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (option === "none" || defaultOption === "none") {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
var plugin = pluginManager.ofType("screensaver").filter(function (i) {
|
||||||
|
return i.id === option;
|
||||||
|
})[0];
|
||||||
|
|
||||||
|
return plugin = plugin || pluginManager.ofType("screensaver").filter(function (i) {
|
||||||
|
return i.id === defaultOption;
|
||||||
|
})[0];
|
||||||
|
}
|
||||||
|
|
||||||
function ScreenSaverManager() {
|
function ScreenSaverManager() {
|
||||||
|
|
||||||
var self = this;
|
var self = this;
|
||||||
|
@ -62,43 +95,13 @@ define(["events", "playbackManager", "pluginManager"], function (events, playbac
|
||||||
};
|
};
|
||||||
|
|
||||||
self.show = function () {
|
self.show = function () {
|
||||||
var screensavers = pluginManager.ofType("screensaver");
|
var screensaver = getScreensaverPlugin(isLoggedIn);
|
||||||
|
|
||||||
require(["connectionManager"], function (connectionManager) {
|
if (screensaver) {
|
||||||
|
showScreenSaver(screensaver);
|
||||||
var server = connectionManager.currentApiClient();
|
}
|
||||||
|
|
||||||
show(screensavers, server);
|
|
||||||
});
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function show(screensavers, currentServer) {
|
|
||||||
|
|
||||||
if (currentServer) {
|
|
||||||
|
|
||||||
var loggedInScreenSavers = screensavers.filter(function (screensaver) {
|
|
||||||
return !screensaver.supportsAnonymous;
|
|
||||||
});
|
|
||||||
|
|
||||||
if (loggedInScreenSavers.length) {
|
|
||||||
screensavers = loggedInScreenSavers;
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
screensavers = screensavers.filter(function (screensaver) {
|
|
||||||
return screensaver.supportsAnonymous;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// Perform some other filter here to get the configured screensaver
|
|
||||||
|
|
||||||
var current = screensavers.length ? screensavers[0] : null;
|
|
||||||
if (current) {
|
|
||||||
showScreenSaver(current);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
self.hide = function () {
|
self.hide = function () {
|
||||||
hide();
|
hide();
|
||||||
};
|
};
|
||||||
|
@ -109,22 +112,19 @@ define(["events", "playbackManager", "pluginManager"], function (events, playbac
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
require(["inputmanager"], function (inputmanager) {
|
if (inputManager.idleTime() < getMinIdleTime()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (inputmanager.idleTime() < getMinIdleTime()) {
|
if (getFunctionalEventIdleTime < getMinIdleTime()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (getFunctionalEventIdleTime < getMinIdleTime()) {
|
if (playbackManager.isPlayingVideo()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (playbackManager.isPlayingVideo()) {
|
self.show();
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
self.show();
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
setInterval(onInterval, 10000);
|
setInterval(onInterval, 10000);
|
||||||
|
|
|
@ -715,9 +715,6 @@ var AppInfo = {};
|
||||||
|
|
||||||
require(["css!css/site"]);
|
require(["css!css/site"]);
|
||||||
|
|
||||||
// alias
|
|
||||||
define("inputmanager", ["inputManager"], returnFirstDependency);
|
|
||||||
|
|
||||||
// define styles
|
// define styles
|
||||||
// TODO determine which of these files can be moved to the components themselves
|
// TODO determine which of these files can be moved to the components themselves
|
||||||
define("material-icons", ["css!css/material-icons/style"], returnFirstDependency);
|
define("material-icons", ["css!css/material-icons/style"], returnFirstDependency);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue