BangleApps/apps/largeclock/settings.js

87 lines
1.7 KiB
JavaScript
Raw Normal View History

2020-05-03 19:12:28 +00:00
(function(back) {
const s = require("Storage");
const apps = s
.list(/\.info$/)
.map(app => {
var a = s.readJSON(app, 1);
return (
a && {
n: a.name,
t: a.type,
src: a.src
}
);
})
.filter(app => app && (app.t == "app" || app.t == "clock" || !app.t))
.map(a => {
return { n: a.n, src: a.src };
});
apps.sort((a, b) => {
if (a.n < b.n) return -1;
if (a.n > b.n) return 1;
return 0;
});
apps.push({
n: "NONE",
src: ""
});
2020-05-03 19:12:28 +00:00
const settings = s.readJSON("largeclock.json", 1) || {
BTN1: "",
2021-09-13 16:45:24 +00:00
BTN3: "",
right_hand: false
2020-05-03 19:12:28 +00:00
};
function showApps(btn) {
function format(v) {
return v === settings[btn] ? "*" : "";
}
function onchange(v) {
settings[btn] = v;
2020-05-12 07:08:19 +00:00
s.writeJSON("largeclock.json", settings);
2020-05-03 19:12:28 +00:00
}
const btnMenu = {
"": {
title: `Apps for ${btn}`
},
"< Back": () => E.showMenu(mainMenu)
};
if (apps.length > 0) {
for (let i = 0; i < apps.length; i++) {
btnMenu[apps[i].n] = {
value: apps[i].src,
format: format,
onchange: onchange
};
}
} else {
btnMenu["...No Apps..."] = {
value: undefined,
format: () => "",
onchange: () => {}
};
}
return E.showMenu(btnMenu);
}
const mainMenu = {
2021-09-13 16:45:24 +00:00
"": { title: "Large Clock" },
2020-05-03 19:12:28 +00:00
"< Back": back,
"BTN1 app": () => showApps("BTN1"),
2021-09-13 16:45:24 +00:00
"BTN3 app": () => showApps("BTN3"),
"On right hand": {
value: !!settings.right_hand,
format: v=>v?"Yes":"No",
onchange: v=>{
settings.right_hand = v;
s.writeJSON("largeclock.json", settings);
}
}
2020-05-03 19:12:28 +00:00
};
2021-09-13 16:45:24 +00:00
2020-05-03 19:12:28 +00:00
E.showMenu(mainMenu);
});