mirror of https://github.com/espruino/BangleApps
qmsched - Remove quiet property and save one theme copy
parent
d60b2da468
commit
ff0c236b03
|
@ -84,7 +84,6 @@ function formatTime(t) {
|
|||
*/
|
||||
function applyTheme() {
|
||||
const theme = (STORAGE.readJSON("setting.json", 1) || {}).theme;
|
||||
if (theme && theme.dark===g.theme.dark) return; // already correct
|
||||
g.theme = theme;
|
||||
delete g.reset;
|
||||
g._reset = g.reset;
|
||||
|
@ -105,24 +104,8 @@ function showThemeMenu(back, quiet){
|
|||
function cl(x) { return g.setColor(x).getColor(); }
|
||||
var themesMenu = {
|
||||
'':{title:/*LANG*/'Theme', back: back},
|
||||
/*LANG*/'Dark BW': ()=>{
|
||||
set(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
|
||||
});
|
||||
/*LANG*/'Default': ()=>{
|
||||
unset(option);
|
||||
back();
|
||||
}
|
||||
};
|
||||
|
@ -131,14 +114,8 @@ function showThemeMenu(back, quiet){
|
|||
n => {
|
||||
let newTheme = STORAGE.readJSON(n);
|
||||
themesMenu[newTheme.name ? newTheme.name : n] = () => {
|
||||
set(option, {
|
||||
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();
|
||||
set(option, n);
|
||||
back();
|
||||
};
|
||||
}
|
||||
);
|
||||
|
|
|
@ -3,37 +3,70 @@
|
|||
* @param {int} mode Quiet 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(); }
|
||||
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 = {
|
||||
// 'Dark BW'
|
||||
fg: cl("#fff"), bg: cl("#000"),
|
||||
fg2: cl("#0ff"), bg2: cl("#000"),
|
||||
fgH: cl("#fff"), bgH: cl("#00f"),
|
||||
dark: true,
|
||||
quiet: true
|
||||
fg:cl("#fff"), bg:cl("#000"),
|
||||
fg2:cl("#fff"), bg2:cl("#004"),
|
||||
fgH:cl("#fff"), bgH:cl("#00f"),
|
||||
dark:true
|
||||
};
|
||||
let normalTheme = {
|
||||
// 'Light BW'
|
||||
fg: cl("#000"), bg: cl("#fff"),
|
||||
fg2: cl("#000"), bg2: cl("#cff"),
|
||||
fgH: cl("#000"), bgH: cl("#0ff"),
|
||||
dark: false,
|
||||
quiet: false
|
||||
fg:cl("#000"), bg:cl("#fff"),
|
||||
fg2:cl("#000"), bg2:cl("#cff"),
|
||||
fgH:cl("#000"), bgH:cl("#0ff"),
|
||||
dark:false
|
||||
};
|
||||
|
||||
if (q.normalTheme) normalTheme = q.normalTheme;
|
||||
if (q.quietTheme) quietTheme = q.quietTheme;
|
||||
let miss = false;
|
||||
|
||||
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);
|
||||
|
||||
require("Storage").writeJSON("setting.json", s);
|
||||
// reload clocks with new theme, otherwise just wait for user to switch apps
|
||||
if (Bangle.CLOCK) load(global.__FILE__);
|
||||
// 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);
|
||||
// reload clocks with new theme, otherwise just wait for user to switch apps
|
||||
if (Bangle.CLOCK) load(global.__FILE__);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Apply LCD options and theme for given mode
|
||||
|
|
Loading…
Reference in New Issue