1
0
Fork 0
BangleApps/apps/largeclock/settings.js

87 lines
1.7 KiB
JavaScript

(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: ""
});
const settings = s.readJSON("largeclock.json", 1) || {
BTN1: "",
BTN3: "",
right_hand: false
};
function showApps(btn) {
function format(v) {
return v === settings[btn] ? "*" : "";
}
function onchange(v) {
settings[btn] = v;
s.writeJSON("largeclock.json", settings);
}
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 = {
"": { title: "Large Clock" },
"< Back": back,
"BTN1 app": () => showApps("BTN1"),
"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);
}
}
};
E.showMenu(mainMenu);
});