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)" }; 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 },

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() { 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);

View file

@ -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);