qmsched - Remove quiet property and save one theme copy
parent
d60b2da468
commit
ff0c236b03
|
|
@ -84,7 +84,6 @@ function formatTime(t) {
|
||||||
*/
|
*/
|
||||||
function applyTheme() {
|
function applyTheme() {
|
||||||
const theme = (STORAGE.readJSON("setting.json", 1) || {}).theme;
|
const theme = (STORAGE.readJSON("setting.json", 1) || {}).theme;
|
||||||
if (theme && theme.dark===g.theme.dark) return; // already correct
|
|
||||||
g.theme = theme;
|
g.theme = theme;
|
||||||
delete g.reset;
|
delete g.reset;
|
||||||
g._reset = g.reset;
|
g._reset = g.reset;
|
||||||
|
|
@ -105,24 +104,8 @@ function showThemeMenu(back, quiet){
|
||||||
function cl(x) { return g.setColor(x).getColor(); }
|
function cl(x) { return g.setColor(x).getColor(); }
|
||||||
var themesMenu = {
|
var themesMenu = {
|
||||||
'':{title:/*LANG*/'Theme', back: back},
|
'':{title:/*LANG*/'Theme', back: back},
|
||||||
/*LANG*/'Dark BW': ()=>{
|
/*LANG*/'Default': ()=>{
|
||||||
set(option, {
|
unset(option);
|
||||||
fg:cl("#fff"), bg:cl("#000"),
|
|
||||||
fg2:cl("#fff"), bg2:cl("#004"),
|
|
||||||
fgH:cl("#fff"), bgH:cl("#00f"),
|
|
||||||
dark:true,
|
|
||||||
quiet: true
|
|
||||||
});
|
|
||||||
back();
|
|
||||||
},
|
|
||||||
/*LANG*/'Light BW': ()=>{
|
|
||||||
set(option, {
|
|
||||||
fg:cl("#000"), bg:cl("#fff"),
|
|
||||||
fg2:cl("#000"), bg2:cl("#cff"),
|
|
||||||
fgH:cl("#000"), bgH:cl("#0ff"),
|
|
||||||
dark:false,
|
|
||||||
quiet: true
|
|
||||||
});
|
|
||||||
back();
|
back();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
@ -131,13 +114,7 @@ function showThemeMenu(back, quiet){
|
||||||
n => {
|
n => {
|
||||||
let newTheme = STORAGE.readJSON(n);
|
let newTheme = STORAGE.readJSON(n);
|
||||||
themesMenu[newTheme.name ? newTheme.name : n] = () => {
|
themesMenu[newTheme.name ? newTheme.name : n] = () => {
|
||||||
set(option, {
|
set(option, n);
|
||||||
fg:cl(newTheme.fg), bg:cl(newTheme.bg),
|
|
||||||
fg2:cl(newTheme.fg2), bg2:cl(newTheme.bg2),
|
|
||||||
fgH:cl(newTheme.fgH), bgH:cl(newTheme.bgH),
|
|
||||||
dark:newTheme.dark,
|
|
||||||
quiet: quiet
|
|
||||||
});
|
|
||||||
back();
|
back();
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,38 +3,71 @@
|
||||||
* @param {int} mode Quiet Mode
|
* @param {int} mode Quiet Mode
|
||||||
*/
|
*/
|
||||||
function switchTheme(mode) {
|
function switchTheme(mode) {
|
||||||
let s = require("Storage").readJSON("setting.json", 1) || {};
|
|
||||||
if (!!mode === s.theme.quiet) return; // nothing to do
|
|
||||||
// default themes, copied from settings.js:showThemeMenu()
|
|
||||||
function cl(x) { return g.setColor(x).getColor(); }
|
function cl(x) { return g.setColor(x).getColor(); }
|
||||||
|
const readTheme = function(name) {
|
||||||
|
const n = require("Storage").readJSON(name);
|
||||||
|
return {
|
||||||
|
fg:cl(n.fg), bg:cl(n.bg),
|
||||||
|
fg2:cl(n.fg2), bg2:cl(n.bg2),
|
||||||
|
fgH:cl(n.fgH), bgH:cl(n.bgH),
|
||||||
|
dark:n.dark
|
||||||
|
};
|
||||||
|
}
|
||||||
|
const s = require("Storage").readJSON("setting.json", 1) || {};
|
||||||
|
// default themes, copied from settings.js:showThemeMenu()
|
||||||
|
|
||||||
let q = require("Storage").readJSON("qmsched.json", 1) || {};
|
const q = require("Storage").readJSON("qmsched.json", 1) || {};
|
||||||
let quietTheme = {
|
let quietTheme = {
|
||||||
// 'Dark BW'
|
// 'Dark BW'
|
||||||
fg:cl("#fff"), bg:cl("#000"),
|
fg:cl("#fff"), bg:cl("#000"),
|
||||||
fg2: cl("#0ff"), bg2: cl("#000"),
|
fg2:cl("#fff"), bg2:cl("#004"),
|
||||||
fgH:cl("#fff"), bgH:cl("#00f"),
|
fgH:cl("#fff"), bgH:cl("#00f"),
|
||||||
dark: true,
|
dark:true
|
||||||
quiet: true
|
|
||||||
};
|
};
|
||||||
let normalTheme = {
|
let normalTheme = {
|
||||||
// 'Light BW'
|
// 'Light BW'
|
||||||
fg:cl("#000"), bg:cl("#fff"),
|
fg:cl("#000"), bg:cl("#fff"),
|
||||||
fg2:cl("#000"), bg2:cl("#cff"),
|
fg2:cl("#000"), bg2:cl("#cff"),
|
||||||
fgH:cl("#000"), bgH:cl("#0ff"),
|
fgH:cl("#000"), bgH:cl("#0ff"),
|
||||||
dark: false,
|
dark:false
|
||||||
quiet: false
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (q.normalTheme) normalTheme = q.normalTheme;
|
let miss = false;
|
||||||
if (q.quietTheme) quietTheme = q.quietTheme;
|
|
||||||
|
|
||||||
s.theme = mode ? quietTheme : normalTheme;
|
// ensure referenced theme files actually exist or remove reference
|
||||||
|
if (q.normalTheme && require("Storage").read(q.normalTheme) == undefined){
|
||||||
|
delete q.normalTheme;
|
||||||
|
miss = true;
|
||||||
|
}
|
||||||
|
if (q.quietTheme && require("Storage").read(q.quietTheme) == undefined){
|
||||||
|
delete q.quietTheme;
|
||||||
|
miss = true;
|
||||||
|
}
|
||||||
|
if (miss)
|
||||||
|
require("Storage").writeJSON("qmsched.json", q);
|
||||||
|
|
||||||
|
// load theme files
|
||||||
|
if (q.normalTheme)
|
||||||
|
normalTheme = readTheme(q.normalTheme);
|
||||||
|
if (q.quietTheme)
|
||||||
|
quietTheme = readTheme(q.quietTheme);
|
||||||
|
|
||||||
|
|
||||||
|
const newTheme = mode ? quietTheme : normalTheme;
|
||||||
|
let changed = false;
|
||||||
|
for (const c in newTheme) {
|
||||||
|
if (!(c in g.theme) || newTheme[c] !== g.theme[c]) {
|
||||||
|
changed = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (changed) {
|
||||||
|
s.theme = newTheme;
|
||||||
require("Storage").writeJSON("setting.json", s);
|
require("Storage").writeJSON("setting.json", s);
|
||||||
// reload clocks with new theme, otherwise just wait for user to switch apps
|
// reload clocks with new theme, otherwise just wait for user to switch apps
|
||||||
if (Bangle.CLOCK) load(global.__FILE__);
|
if (Bangle.CLOCK) load(global.__FILE__);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* Apply LCD options and theme for given mode
|
* Apply LCD options and theme for given mode
|
||||||
* @param {int} mode Quiet Mode
|
* @param {int} mode Quiet Mode
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue