mirror of https://github.com/espruino/BangleApps
66 lines
1.3 KiB
JavaScript
66 lines
1.3 KiB
JavaScript
(function(back) {
|
|
const s = require("Storage");
|
|
const apps = s
|
|
.list(/\.info$/)
|
|
.map(app => {
|
|
var a = s.readJSON(app, 1);
|
|
return a && (a.type=="app" || a.type=="clock" || !a.type) && {n: a.name, src: a.src};
|
|
})
|
|
.filter(Boolean);
|
|
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: null});
|
|
|
|
const settings = s.readJSON("shortcuts.json", 1) || {
|
|
BTN1: null,
|
|
BTN3: null
|
|
};
|
|
|
|
function showApps(btn) {
|
|
function format(v) {
|
|
return v === settings[btn] ? "*" : "";
|
|
}
|
|
|
|
function onchange(v) {
|
|
settings[btn] = v;
|
|
s.writeJSON("shortcuts.json", settings);
|
|
}
|
|
|
|
const btnMenu = {
|
|
"": {
|
|
title: `Apps for ${btn}`
|
|
},
|
|
"< Back": () => E.showMenu(mainMenu)
|
|
};
|
|
|
|
if (apps.length > 0) {
|
|
for (let a of apps) {
|
|
btnMenu[a.n] = {
|
|
value: a.src,
|
|
format: format,
|
|
onchange: onchange
|
|
};
|
|
}
|
|
} else {
|
|
btnMenu["...No Apps..."] = {
|
|
value: undefined,
|
|
format: () => "",
|
|
onchange: () => {}
|
|
};
|
|
}
|
|
|
|
E.showMenu(btnMenu);
|
|
}
|
|
|
|
const mainMenu = {
|
|
"": { title: "Shortcuts Settings" },
|
|
"< Back": back,
|
|
"BTN1 app": () => showApps("BTN1"),
|
|
"BTN3 app": () => showApps("BTN3")
|
|
};
|
|
E.showMenu(mainMenu);
|
|
})
|