quicklaunch - Only check configured apps on use

master
Martin Boonk 2022-10-30 15:20:41 +01:00
parent 54101956bf
commit 6b03375a97
1 changed files with 13 additions and 18 deletions

View File

@ -1,29 +1,24 @@
{
let settings = Object.assign(require("Storage").readJSON("quicklaunch.json", true) || {});
let settings = require("Storage").readJSON("quicklaunch.json", true) || {};
const storage = require("Storage");
let hash = require("Storage").hash(/\.info/);
if (settings.hash!=hash) {
//apps changed, rescan and remove no longer existing apps
let apps = require("Storage").list(/\.info$/).map(app=>{var a=require("Storage").readJSON(app,1);return a&&{src:a.src};});
for (let c of ["leftapp","rightapp","upapp","downapp","tapapp"]){
if (!settings[c]) settings[c] = {"name":"(none)"};
if (!require("Storage").read(settings[c].src)) settings[c] = {"name":"(none)"};
}
settings.hash = hash;
require("Storage").write("quicklaunch.json",settings);
}
let reset = function(name){
if (!settings[name]) settings[name] = {"name":"(none)"};
if (!require("Storage").read(settings[name].src)) settings[name] = {"name":"(none)"};
storage.write("quicklaunch.json", settings);
};
Bangle.on("touch", () => {
if (!Bangle.CLOCK) return;
if (settings.tapapp.src) load(settings.tapapp.src);
if (settings.tapapp.src){ if (!storage.read(settings.tapapp.src)) reset("tapapp"); else load(settings.tapapp.src); }
});
Bangle.on("swipe", (lr,ud) => {
if (!Bangle.CLOCK) return;
if (lr == -1 && settings.leftapp.src) load(settings.leftapp.src);
if (lr == 1 && settings.rightapp.src) load(settings.rightapp.src);
if (ud == 1 && settings.upapp.src) load(settings.upapp.src);
if (ud == -1 && settings.downapp.src) load(settings.downapp.src);
if (lr == -1 && settings.leftapp && settings.leftapp.src){ if (!storage.read(settings.leftapp.src)) reset("leftapp"); else load(settings.leftapp.src); }
if (lr == 1 && settings.rightapp && settings.rightapp.src){ if (!storage.read(settings.rightapp.src)) reset("rightapp"); else load(settings.rightapp.src); }
if (ud == 1 && settings.upapp && settings.upapp.src){ if (!storage.read(settings.upapp.src)) reset("upapp"); else load(settings.upapp.src); }
if (ud == -1 && settings.downapp && settings.downapp.src){ if (!storage.read(settings.downapp.src)) reset("downapp"); else load(settings.downapp.src); }
});
}