1
0
Fork 0
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:
grafixeyehero 2019-11-27 18:02:38 +03:00
parent 4441c32c4b
commit f28074fb9e
3 changed files with 50 additions and 52 deletions

View file

@ -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)" };
return elem.animate(keyframes, timing);
}
function shake(elem, iterations) {
var keyframes = [
{ transform: "translate3d(0, 0, 0)", offset: 0 },

View file

@ -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() {
// Returns the minimum amount of idle time required before the screen saver can be displayed
//return 3000;
//time units used Millisecond
return 180000;
}
var lastFunctionalEvent = 0;
function getFunctionalEventIdleTime() {
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() {
var self = this;
@ -62,43 +95,13 @@ define(["events", "playbackManager", "pluginManager"], function (events, playbac
};
self.show = function () {
var screensavers = pluginManager.ofType("screensaver");
var screensaver = getScreensaverPlugin(isLoggedIn);
require(["connectionManager"], function (connectionManager) {
var server = connectionManager.currentApiClient();
show(screensavers, server);
});
if (screensaver) {
showScreenSaver(screensaver);
}
};
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 () {
hide();
};
@ -109,9 +112,7 @@ define(["events", "playbackManager", "pluginManager"], function (events, playbac
return;
}
require(["inputmanager"], function (inputmanager) {
if (inputmanager.idleTime() < getMinIdleTime()) {
if (inputManager.idleTime() < getMinIdleTime()) {
return;
}
@ -124,7 +125,6 @@ define(["events", "playbackManager", "pluginManager"], function (events, playbac
}
self.show();
});
}
setInterval(onInterval, 10000);

View file

@ -715,9 +715,6 @@ var AppInfo = {};
require(["css!css/site"]);
// alias
define("inputmanager", ["inputManager"], returnFirstDependency);
// define styles
// TODO determine which of these files can be moved to the components themselves
define("material-icons", ["css!css/material-icons/style"], returnFirstDependency);