From 306a975bf8597f04be273e1826b8701614efb7b8 Mon Sep 17 00:00:00 2001 From: jan lamos Date: Sat, 16 Mar 2024 14:52:29 +0100 Subject: [PATCH] further linter issue fixes --- apps/thmswtch/app.js | 230 +++++++++++++++++++-- apps/thmswtch/metadata.json | 4 +- apps/thmswtch/settings.js | 384 ++++++++++++++++++------------------ 3 files changed, 410 insertions(+), 208 deletions(-) diff --git a/apps/thmswtch/app.js b/apps/thmswtch/app.js index d1be7b997..55ddd7554 100644 --- a/apps/thmswtch/app.js +++ b/apps/thmswtch/app.js @@ -1,7 +1,170 @@ const SETTINGS_FILE = "themeSwitch.json"; const storage = require("Storage"); +var sunrise, sunset, date; +var SunCalc = require("suncalc"); // from modules folder let settings = storage.readJSON('setting.json', 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(); } @@ -16,7 +179,7 @@ function upd(th) { g.clear(1); } -function flipTheme(saved) { +function setDarkTheme() { if (!g.theme.dark) { upd({ fg: cl("#fff"), bg: cl("#000"), @@ -24,26 +187,67 @@ function flipTheme(saved) { fgH: cl("#fff"), bgH: cl("#00f"), dark: true }); + } +} - saved.darkModeActive = 1; - } else { +function setLightTheme() { + if (g.theme.dark) { 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; -} +// const SETTINGS_FILE = "themeSwitch.json"; +// const storage = require("Storage"); +// let settings = storage.readJSON('setting.json', 1); +// let saved = storage.readJSON(SETTINGS_FILE, 1) || {}; -saved = flipTheme(saved); -storage.writeJSON(SETTINGS_FILE, saved); -Bangle.drawWidgets(); \ No newline at end of file +// function cl(x) { return g.setColor(x).getColor(); } + +// 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(); \ No newline at end of file diff --git a/apps/thmswtch/metadata.json b/apps/thmswtch/metadata.json index a60197dff..e2826acdd 100644 --- a/apps/thmswtch/metadata.json +++ b/apps/thmswtch/metadata.json @@ -9,9 +9,7 @@ "readme": "README.md", "storage": [ {"name":"thmswtch.app.js","url":"app.js"}, - {"name":"thmswtch.settings.js","url":"settings.js"}, {"name":"thmswtch.boot.js","url":"boot.js"}, {"name":"thmswtch.img","url":"app-icon.js","evaluate":true} - ], - "data":[{"name":"thmswtch.settings.json"}] + ] } diff --git a/apps/thmswtch/settings.js b/apps/thmswtch/settings.js index 06a46472c..2b539666a 100644 --- a/apps/thmswtch/settings.js +++ b/apps/thmswtch/settings.js @@ -1,202 +1,202 @@ -const SETTINGS_FILE = "themeSwitch.json"; -const storage = require("Storage"); -var sunrise, sunset, date; -var SunCalc = require("suncalc"); // from modules folder -let settings = storage.readJSON('setting.json', 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 +// const SETTINGS_FILE = "themeSwitch.json"; +// const storage = require("Storage"); +// var sunrise, sunset, date; +// var SunCalc = require("suncalc"); // from modules folder +// let settings = storage.readJSON('setting.json', 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 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 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); - }, -}; +// 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); +// // 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 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 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(); } -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 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 setDarkTheme() { - 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 - }); - } -} +// function setDarkTheme() { +// 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 +// }); +// } +// } -function setLightTheme() { - if (g.theme.dark) { - upd({ - fg: cl("#000"), bg: cl("#fff"), - fg2: cl("#000"), bg2: cl("#cff"), - fgH: cl("#000"), bgH: cl("#0ff"), - dark: false - }); - } -} \ No newline at end of file +// function setLightTheme() { +// if (g.theme.dark) { +// upd({ +// fg: cl("#000"), bg: cl("#fff"), +// fg2: cl("#000"), bg2: cl("#cff"), +// fgH: cl("#000"), bgH: cl("#0ff"), +// dark: false +// }); +// } +// } \ No newline at end of file