BangleApps/apps/chimer/settings.js

95 lines
2.0 KiB
JavaScript
Raw Normal View History

2022-08-22 20:49:10 +00:00
/**
* @param {function} back Use back() to return to settings menu
*/
2022-08-24 09:15:18 +00:00
(function (back) {
2022-08-22 20:49:10 +00:00
// default to buzzing
2022-08-22 21:32:17 +00:00
var FILE = "chimer.json";
var settings = {};
const chimes = ["Off", "Buzz", "Beep", "Both"];
2022-08-23 04:12:48 +00:00
const frequency = ["60 min", "30 min", "15 min", "1 min"];
2022-08-22 20:49:10 +00:00
2022-08-24 09:15:18 +00:00
var showMainMenu = () => {
E.showMenu({
"": { title: "Chimer" },
"< Back": () => back(),
"Chime Type": {
value: settings.type,
min: 0,
max: 2, // both is just silly
format: (v) => chimes[v],
onchange: (v) => {
settings.type = v;
writeSettings(settings);
},
2022-08-22 20:49:10 +00:00
},
2022-08-24 09:15:18 +00:00
Frequency: {
value: settings.freq,
min: 0,
max: 2,
format: (v) => frequency[v],
onchange: (v) => {
settings.freq = v;
writeSettings(settings);
},
},
Repetition: {
value: settings.repeat,
min: 1,
2022-08-24 10:38:13 +00:00
max: 5,
2022-08-24 09:15:18 +00:00
format: (v) => v,
onchange: (v) => {
settings.repeat = v;
writeSettings(settings);
},
},
2022-08-25 09:15:59 +00:00
"Sleep Mode": {
2022-08-25 09:26:36 +00:00
value: !!settings.sleep,
2022-08-25 09:15:59 +00:00
onchange: (v) => {
settings.sleep = v;
writeSettings(settings);
},
},
"Sleep Start": {
2022-08-24 09:15:18 +00:00
value: settings.start,
2022-08-24 09:35:31 +00:00
min: 0,
max: 23,
2022-08-24 09:15:18 +00:00
format: (v) => v,
onchange: (v) => {
settings.start = v;
writeSettings(settings);
},
},
2022-08-25 09:15:59 +00:00
"Sleep End": {
2022-08-24 09:15:18 +00:00
value: settings.end,
2022-08-24 09:38:26 +00:00
min: 0,
max: 23,
2022-08-24 09:15:18 +00:00
format: (v) => v,
onchange: (v) => {
settings.end = v;
writeSettings(settings);
},
},
});
};
2022-08-22 20:49:10 +00:00
2022-08-22 23:09:32 +00:00
var readSettings = () => {
var settings = require("Storage").readJSON(FILE, 1) || {
type: 1,
freq: 0,
2022-08-23 01:04:51 +00:00
repeat: 1,
2022-08-25 09:15:59 +00:00
sleep: true,
start: 6,
end: 22,
2022-08-22 23:09:32 +00:00
};
return settings;
};
var writeSettings = (settings) => {
require("Storage").writeJSON(FILE, settings);
};
settings = readSettings();
showMainMenu();
2022-08-24 09:15:18 +00:00
});