further linter issue fixes

pull/3258/head
jan lamos 2024-03-16 14:52:29 +01:00
parent f7acb5c86e
commit 306a975bf8
3 changed files with 410 additions and 208 deletions

View File

@ -1,7 +1,170 @@
const SETTINGS_FILE = "themeSwitch.json"; const SETTINGS_FILE = "themeSwitch.json";
const storage = require("Storage"); const storage = require("Storage");
var sunrise, sunset, date;
var SunCalc = require("suncalc"); // from modules folder
let settings = storage.readJSON('setting.json', 1); let settings = storage.readJSON('setting.json', 1);
let saved = storage.readJSON(SETTINGS_FILE, 1) || {}; let saved = storage.readJSON(SETTINGS_FILE, 1) || {};
if (settings.theme.fg > 0) {
saved.darkModeActive = 1;
} else {
saved.darkModeActive = 0;
}
let dmH, dmM, lmH, lmM;
if (require("Storage").readJSON("themeSwitch.json", 1) !== undefined) {
dmH = parseInt(saved.darkModeAt.split(":")[0] | 0);
dmM = parseInt(saved.darkModeAt.split(":")[1] | 0);
lmH = parseInt(saved.lightModeAt.split(":")[0] | 0);
lmM = parseInt(saved.lightModeAt.split(":")[1] | 0);
} else {
dmH = 0;
dmM = 0;
lmH = 0;
lmM = 0;
}
// Main menu
var mainmenu = {
"": {
"title": "Theme Switch"
},
"< Back": function () { load(); },
"Automatic Dark Mode": {
value: saved.darkMode | false,
format: v => v ? "On" : "Off",
min: 0, max: 1, step: 1,
onchange: v => {
saved.darkMode = v;
storage.writeJSON(SETTINGS_FILE, saved);
}
},
"Dark Mode Active": {
value: saved.darkModeActive | false,
format: v => v ? "On" : "Off",
min: 0, max: 1, step: 1,
onchange: v => {
saved.darkModeActive = v;
storage.writeJSON(SETTINGS_FILE, saved);
if (v !== 0) {
setDarkTheme();
Bangle.drawWidgets();
} else {
setLightTheme();
Bangle.drawWidgets();
}
}
},
"Dark Mode by Sun": {
value: saved.darkModeBySun | false,
format: v => v ? "On" : "Off",
min: 0, max: 1, step: 1,
onchange: v => {
saved.darkModeBySun = v;
if (v !== 0) {
//print("calculating sun times");
calculateSunTimes();
saved.lightModeAt = sunrise;
saved.darkModeAt = sunset;
//print("sunrise" +sunrise);
//print("sunset" +sunset);
}
storage.writeJSON(SETTINGS_FILE, saved);
},
},
"light mode at": {
value: saved.lightModeAt,
format: v => saved.lightModeAt,
onchange: function () {
if (saved.darkModeBySun === 0) {
E.showMenu(lightModeAtMenu);
}
else {
E.showAlert("Deactivate dark mode first!", "Action Blocked").then(
function () { E.showMenu(mainmenu); });
}
}
},
"dark mode at": {
value: saved.darkModeAt,
format: v => saved.darkModeAt,
onchange: function () {
if (saved.darkModeBySun === 0) {
E.showMenu(darkModeAtMenu);
}
else {
E.showAlert("Deactivate dark mode first!", "Action Blocked").then(function () { E.showMenu(mainmenu); });
}
}
},
"Exit": function () { load(); },
};
var lightModeAtMenu = {
"": {
"title": "light mode at"
},
"Hour": {
value: lmH,
min: 0, max: 23, step: 1,
onchange: v => { lmH = v; }
},
"Minute": {
value: lmM,
min: 0, max: 59, step: 1,
onchange: v => { lmM = v; }
},
"< Back": function () {
saved.lightModeAt = fixTime(lmH, lmM);
storage.writeJSON(SETTINGS_FILE, saved);
E.showMenu(mainmenu);
},
};
var darkModeAtMenu = {
"": {
"title": "dark mode at"
},
"Hour": {
value: dmH,
min: 0, max: 23, step: 1,
onchange: v => { dmH = v; }
},
"Minute": {
value: dmM,
min: 0, max: 59, step: 1,
onchange: v => { dmM = v; }
},
"< Back": function () {
saved.darkModeAt = fixTime(dmH, dmM);
storage.writeJSON(SETTINGS_FILE, saved);
E.showMenu(mainmenu);
},
};
// Actually display the menu
E.showMenu(mainmenu);
// Function to fix time format
function fixTime(h, m) {
if (h.toString().length < 2) {
h = "0" + h.toString();
}
if (m.toString().length < 2) {
m = "0" + m.toString();
}
return h.toString() + ":" + m.toString();
}
function calculateSunTimes() {
var location = require("Storage").readJSON("mylocation.json", 1) || {};
location.lat = location.lat || 51.5072;
location.lon = location.lon || 0.1276; // London
date = new Date(Date.now());
var times = SunCalc.getTimes(date, location.lat, location.lon);
sunrise = fixTime(times.sunrise.getHours(), times.sunrise.getMinutes());
sunset = fixTime(times.sunset.getHours(), times.sunset.getMinutes());
/* do we want to re-calculate this every day? Or we just assume
that 'show' will get called once a day? */
}
function cl(x) { return g.setColor(x).getColor(); } function cl(x) { return g.setColor(x).getColor(); }
@ -16,7 +179,7 @@ function upd(th) {
g.clear(1); g.clear(1);
} }
function flipTheme(saved) { function setDarkTheme() {
if (!g.theme.dark) { if (!g.theme.dark) {
upd({ upd({
fg: cl("#fff"), bg: cl("#000"), fg: cl("#fff"), bg: cl("#000"),
@ -24,26 +187,67 @@ function flipTheme(saved) {
fgH: cl("#fff"), bgH: cl("#00f"), fgH: cl("#fff"), bgH: cl("#00f"),
dark: true dark: true
}); });
}
}
saved.darkModeActive = 1; function setLightTheme() {
} else { if (g.theme.dark) {
upd({ upd({
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
}); });
saved.darkModeActive = 0;
} }
return saved;
} }
if (settings.theme.fg > 0) { // const SETTINGS_FILE = "themeSwitch.json";
saved.darkModeActive = 1; // const storage = require("Storage");
} else { // let settings = storage.readJSON('setting.json', 1);
saved.darkModeActive = 0; // let saved = storage.readJSON(SETTINGS_FILE, 1) || {};
}
saved = flipTheme(saved); // function cl(x) { return g.setColor(x).getColor(); }
storage.writeJSON(SETTINGS_FILE, saved);
Bangle.drawWidgets(); // function upd(th) {
// g.theme = th;
// settings.theme = th;
// storage.write('setting.json', settings);
// delete g.reset;
// g._reset = g.reset;
// g.reset = function (n) { return g._reset().setColor(th.fg).setBgColor(th.bg); };
// g.clear = function (n) { if (n) g.reset(); return g.clearRect(0, 0, g.getWidth(), g.getHeight()); };
// g.clear(1);
// }
// function flipTheme(saved) {
// if (!g.theme.dark) {
// upd({
// fg: cl("#fff"), bg: cl("#000"),
// fg2: cl("#fff"), bg2: cl("#004"),
// fgH: cl("#fff"), bgH: cl("#00f"),
// dark: true
// });
// saved.darkModeActive = 1;
// } else {
// upd({
// fg: cl("#000"), bg: cl("#fff"),
// fg2: cl("#000"), bg2: cl("#cff"),
// fgH: cl("#000"), bgH: cl("#0ff"),
// dark: false
// });
// saved.darkModeActive = 0;
// }
// return saved;
// }
// if (settings.theme.fg > 0) {
// saved.darkModeActive = 1;
// } else {
// saved.darkModeActive = 0;
// }
// saved = flipTheme(saved);
// storage.writeJSON(SETTINGS_FILE, saved);
// Bangle.drawWidgets();
// load();

View File

@ -9,9 +9,7 @@
"readme": "README.md", "readme": "README.md",
"storage": [ "storage": [
{"name":"thmswtch.app.js","url":"app.js"}, {"name":"thmswtch.app.js","url":"app.js"},
{"name":"thmswtch.settings.js","url":"settings.js"},
{"name":"thmswtch.boot.js","url":"boot.js"}, {"name":"thmswtch.boot.js","url":"boot.js"},
{"name":"thmswtch.img","url":"app-icon.js","evaluate":true} {"name":"thmswtch.img","url":"app-icon.js","evaluate":true}
], ]
"data":[{"name":"thmswtch.settings.json"}]
} }

View File

@ -1,202 +1,202 @@
const SETTINGS_FILE = "themeSwitch.json"; // const SETTINGS_FILE = "themeSwitch.json";
const storage = require("Storage"); // const storage = require("Storage");
var sunrise, sunset, date; // var sunrise, sunset, date;
var SunCalc = require("suncalc"); // from modules folder // var SunCalc = require("suncalc"); // from modules folder
let settings = storage.readJSON('setting.json', 1); // let settings = storage.readJSON('setting.json', 1);
let saved = storage.readJSON(SETTINGS_FILE, 1) || {}; // let saved = storage.readJSON(SETTINGS_FILE, 1) || {};
if (settings.theme.fg > 0) { // if (settings.theme.fg > 0) {
saved.darkModeActive = 1; // saved.darkModeActive = 1;
} else { // } else {
saved.darkModeActive = 0; // saved.darkModeActive = 0;
} // }
let dmH, dmM, lmH, lmM; // let dmH, dmM, lmH, lmM;
if (require("Storage").readJSON("themeSwitch.json", 1) !== undefined) { // if (require("Storage").readJSON("themeSwitch.json", 1) !== undefined) {
dmH = parseInt(saved.darkModeAt.split(":")[0] | 0); // dmH = parseInt(saved.darkModeAt.split(":")[0] | 0);
dmM = parseInt(saved.darkModeAt.split(":")[1] | 0); // dmM = parseInt(saved.darkModeAt.split(":")[1] | 0);
lmH = parseInt(saved.lightModeAt.split(":")[0] | 0); // lmH = parseInt(saved.lightModeAt.split(":")[0] | 0);
lmM = parseInt(saved.lightModeAt.split(":")[1] | 0); // lmM = parseInt(saved.lightModeAt.split(":")[1] | 0);
} else { // } else {
dmH = 0; // dmH = 0;
dmM = 0; // dmM = 0;
lmH = 0; // lmH = 0;
lmM = 0; // lmM = 0;
} // }
// Main menu // // Main menu
var mainmenu = { // var mainmenu = {
"": { // "": {
"title": "Theme Switch" // "title": "Theme Switch"
}, // },
"< Back": function () { load(); }, // "< Back": function () { load(); },
"Automatic Dark Mode": { // "Automatic Dark Mode": {
value: saved.darkMode | false, // value: saved.darkMode | false,
//format: v => v ? "On" : "Off", // //format: v => v ? "On" : "Off",
min: 0, max: 1, step: 1, // min: 0, max: 1, step: 1,
onchange: v => { // onchange: v => {
saved.darkMode = v; // saved.darkMode = v;
storage.writeJSON(SETTINGS_FILE, saved); // storage.writeJSON(SETTINGS_FILE, saved);
} // }
}, // },
"Dark Mode Active": { // "Dark Mode Active": {
value: saved.darkModeActive | false, // value: saved.darkModeActive | false,
format: v => v ? "On" : "Off", // format: v => v ? "On" : "Off",
min: 0, max: 1, step: 1, // min: 0, max: 1, step: 1,
onchange: v => { // onchange: v => {
saved.darkModeActive = v; // saved.darkModeActive = v;
storage.writeJSON(SETTINGS_FILE, saved); // storage.writeJSON(SETTINGS_FILE, saved);
if (v !== 0) { // if (v !== 0) {
setDarkTheme(); // setDarkTheme();
Bangle.drawWidgets(); // Bangle.drawWidgets();
} else { // } else {
setLightTheme(); // setLightTheme();
Bangle.drawWidgets(); // Bangle.drawWidgets();
} // }
} // }
}, // },
"Dark Mode by Sun": { // "Dark Mode by Sun": {
value: saved.darkModeBySun | false, // value: saved.darkModeBySun | false,
format: v => v ? "On" : "Off", // format: v => v ? "On" : "Off",
min: 0, max: 1, step: 1, // min: 0, max: 1, step: 1,
onchange: v => { // onchange: v => {
saved.darkModeBySun = v; // saved.darkModeBySun = v;
if (v !== 0) { // if (v !== 0) {
//print("calculating sun times"); // //print("calculating sun times");
calculateSunTimes(); // calculateSunTimes();
saved.lightModeAt = sunrise; // saved.lightModeAt = sunrise;
saved.darkModeAt = sunset; // saved.darkModeAt = sunset;
//print("sunrise" +sunrise); // //print("sunrise" +sunrise);
//print("sunset" +sunset); // //print("sunset" +sunset);
} // }
storage.writeJSON(SETTINGS_FILE, saved); // storage.writeJSON(SETTINGS_FILE, saved);
}, // },
}, // },
"light mode at": { // "light mode at": {
value: saved.lightModeAt, // value: saved.lightModeAt,
format: v => saved.lightModeAt, // format: v => saved.lightModeAt,
onchange: function () { // onchange: function () {
if (saved.darkModeBySun === 0) { // if (saved.darkModeBySun === 0) {
E.showMenu(lightModeAtMenu); // E.showMenu(lightModeAtMenu);
} // }
else { // else {
E.showAlert("Deactivate dark mode first!", "Action Blocked").then( // E.showAlert("Deactivate dark mode first!", "Action Blocked").then(
function () { E.showMenu(mainmenu); }); // function () { E.showMenu(mainmenu); });
} // }
} // }
}, // },
"dark mode at": { // "dark mode at": {
value: saved.darkModeAt, // value: saved.darkModeAt,
format: v => saved.darkModeAt, // format: v => saved.darkModeAt,
onchange: function () { // onchange: function () {
if (saved.darkModeBySun === 0) { // if (saved.darkModeBySun === 0) {
E.showMenu(darkModeAtMenu); // E.showMenu(darkModeAtMenu);
} // }
else { // else {
E.showAlert("Deactivate dark mode first!", "Action Blocked").then(function () { E.showMenu(mainmenu); }); // E.showAlert("Deactivate dark mode first!", "Action Blocked").then(function () { E.showMenu(mainmenu); });
} // }
} // }
}, // },
"Exit": function () { load(); }, // "Exit": function () { load(); },
}; // };
var lightModeAtMenu = { // var lightModeAtMenu = {
"": { // "": {
"title": "light mode at" // "title": "light mode at"
}, // },
"Hour": { // "Hour": {
value: lmH, // value: lmH,
min: 0, max: 23, step: 1, // min: 0, max: 23, step: 1,
onchange: v => { lmH = v; } // onchange: v => { lmH = v; }
}, // },
"Minute": { // "Minute": {
value: lmM, // value: lmM,
min: 0, max: 59, step: 1, // min: 0, max: 59, step: 1,
onchange: v => { lmM = v; } // onchange: v => { lmM = v; }
}, // },
"< Back": function () { // "< Back": function () {
saved.lightModeAt = fixTime(lmH, lmM); // saved.lightModeAt = fixTime(lmH, lmM);
storage.writeJSON(SETTINGS_FILE, saved); // storage.writeJSON(SETTINGS_FILE, saved);
E.showMenu(mainmenu); // E.showMenu(mainmenu);
}, // },
}; // };
var darkModeAtMenu = { // var darkModeAtMenu = {
"": { // "": {
"title": "dark mode at" // "title": "dark mode at"
}, // },
"Hour": { // "Hour": {
value: dmH, // value: dmH,
min: 0, max: 23, step: 1, // min: 0, max: 23, step: 1,
onchange: v => { dmH = v; } // onchange: v => { dmH = v; }
}, // },
"Minute": { // "Minute": {
value: dmM, // value: dmM,
min: 0, max: 59, step: 1, // min: 0, max: 59, step: 1,
onchange: v => { dmM = v; } // onchange: v => { dmM = v; }
}, // },
"< Back": function () { // "< Back": function () {
saved.darkModeAt = fixTime(dmH, dmM); // saved.darkModeAt = fixTime(dmH, dmM);
storage.writeJSON(SETTINGS_FILE, saved); // storage.writeJSON(SETTINGS_FILE, saved);
E.showMenu(mainmenu); // E.showMenu(mainmenu);
}, // },
}; // };
// Actually display the menu // // Actually display the menu
E.showMenu(mainmenu); // E.showMenu(mainmenu);
// Function to fix time format // // Function to fix time format
function fixTime(h, m) { // function fixTime(h, m) {
if (h.toString().length < 2) { // if (h.toString().length < 2) {
h = "0" + h.toString(); // h = "0" + h.toString();
} // }
if (m.toString().length < 2) { // if (m.toString().length < 2) {
m = "0" + m.toString(); // m = "0" + m.toString();
} // }
return h.toString() + ":" + m.toString(); // return h.toString() + ":" + m.toString();
} // }
function calculateSunTimes() { // function calculateSunTimes() {
var location = require("Storage").readJSON("mylocation.json", 1) || {}; // var location = require("Storage").readJSON("mylocation.json", 1) || {};
location.lat = location.lat || 51.5072; // location.lat = location.lat || 51.5072;
location.lon = location.lon || 0.1276; // London // location.lon = location.lon || 0.1276; // London
date = new Date(Date.now()); // date = new Date(Date.now());
var times = SunCalc.getTimes(date, location.lat, location.lon); // var times = SunCalc.getTimes(date, location.lat, location.lon);
sunrise = fixTime(times.sunrise.getHours(), times.sunrise.getMinutes()); // sunrise = fixTime(times.sunrise.getHours(), times.sunrise.getMinutes());
sunset = fixTime(times.sunset.getHours(), times.sunset.getMinutes()); // sunset = fixTime(times.sunset.getHours(), times.sunset.getMinutes());
/* do we want to re-calculate this every day? Or we just assume // /* do we want to re-calculate this every day? Or we just assume
that 'show' will get called once a day? */ // that 'show' will get called once a day? */
} // }
function cl(x) { return g.setColor(x).getColor(); } // function cl(x) { return g.setColor(x).getColor(); }
function upd(th) { // function upd(th) {
g.theme = th; // g.theme = th;
settings.theme = th; // settings.theme = th;
storage.write('setting.json', settings); // storage.write('setting.json', settings);
delete g.reset; // delete g.reset;
g._reset = g.reset; // g._reset = g.reset;
g.reset = function (n) { return g._reset().setColor(th.fg).setBgColor(th.bg); }; // g.reset = function (n) { return g._reset().setColor(th.fg).setBgColor(th.bg); };
g.clear = function (n) { if (n) g.reset(); return g.clearRect(0, 0, g.getWidth(), g.getHeight()); }; // g.clear = function (n) { if (n) g.reset(); return g.clearRect(0, 0, g.getWidth(), g.getHeight()); };
g.clear(1); // g.clear(1);
} // }
function setDarkTheme() { // function setDarkTheme() {
if (!g.theme.dark) { // if (!g.theme.dark) {
upd({ // upd({
fg: cl("#fff"), bg: cl("#000"), // fg: cl("#fff"), bg: cl("#000"),
fg2: cl("#fff"), bg2: cl("#004"), // fg2: cl("#fff"), bg2: cl("#004"),
fgH: cl("#fff"), bgH: cl("#00f"), // fgH: cl("#fff"), bgH: cl("#00f"),
dark: true // dark: true
}); // });
} // }
} // }
function setLightTheme() { // function setLightTheme() {
if (g.theme.dark) { // if (g.theme.dark) {
upd({ // upd({
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
}); // });
} // }
} // }