BangleApps/apps/regattatimer/settings.js

75 lines
1.6 KiB
JavaScript
Raw Normal View History

2024-02-23 16:20:32 +00:00
(function(back) {
2024-03-01 14:31:42 +00:00
var
file = "regattatimer.json",
storage = require("Storage"),
2024-03-08 12:04:16 +00:00
/*dials = ["Numeric", "Discs"],*/
2024-03-01 14:31:42 +00:00
themes = ["Light", "Dark"],
settings = Object.assign({
"debug": false,
"buzzer": true,
"dial": "Numeric",
2024-03-01 20:38:19 +00:00
"gps": true,
2024-03-01 14:31:42 +00:00
"record": false,
"theme": "Dark",
}, storage.readJSON(file, true) || {});
function save(key, value) {
settings[key] = value;
storage.writeJSON(file, settings);
2024-02-23 16:20:32 +00:00
}
E.showMenu({
"" : { "title" : "Regatta Timer" },
"< Back" : () => back(),
2024-03-01 14:31:42 +00:00
"GPS": {
2024-02-23 16:20:32 +00:00
value: !!settings.gps, // !! converts undefined to false
onchange: v => {
2024-03-01 14:31:42 +00:00
save("gps", v);
2024-02-23 16:20:32 +00:00
}
},
2024-03-01 14:31:42 +00:00
"THEME": {
value: themes.indexOf(settings.theme),
min: 0,
max: themes.length - 1,
step: 1,
wrap: true,
format: v => themes[v],
onchange: (d) => {
save("theme", themes[d]);
}
},
"BUZZER": {
value: !!settings.buzzer, // !! converts undefined to false
2024-02-23 16:20:32 +00:00
onchange: v => {
2024-03-01 14:31:42 +00:00
save("buzzer", v);
2024-02-23 16:20:32 +00:00
}
2024-02-23 19:21:37 +00:00
},
2024-03-01 14:31:42 +00:00
/*
2024-02-23 16:20:32 +00:00
"DIAL": {
2024-03-01 14:31:42 +00:00
value: dials.indexOf(settings.dial),
2024-02-23 16:20:32 +00:00
min: 0,
2024-03-01 14:31:42 +00:00
max: dials.length - 1,
step: 1,
wrap: true,
format: v => dials[v],
onchange: (d) => {
save("dial", dials[d]);
}
},
"RECORD": {
value: !!settings.record, // 0| converts undefined to 0
2024-02-23 16:20:32 +00:00
onchange: v => {
2024-03-01 14:31:42 +00:00
settings.record = v;
save("record", v);
2024-02-23 16:20:32 +00:00
}
2024-02-24 20:07:32 +00:00
},
2024-03-01 14:31:42 +00:00
*/
"DEBUG": {
2024-02-24 20:07:32 +00:00
value: !!settings.debug, // 0| converts undefined to 0
onchange: v => {
2024-03-01 14:31:42 +00:00
save("debug", v);
2024-02-24 20:07:32 +00:00
}
},
2024-02-23 16:20:32 +00:00
});
2024-03-02 19:17:02 +00:00
})