iconlaunch - Cache apps for faster start

master
Martin Boonk 2022-10-20 18:46:06 +02:00
parent 72208c2c06
commit d444fe5d69
1 changed files with 18 additions and 28 deletions

View File

@ -5,34 +5,24 @@
Bangle.loadWidgets(); Bangle.loadWidgets();
Bangle.drawWidgets(); Bangle.drawWidgets();
} }
var apps = s let launchCache = s.readJSON("launch.cache.json", true)||{};
.list(/\.info$/) let launchHash = require("Storage").hash(/\.info/);
.map((app) => { if (launchCache.hash!=launchHash) {
var a = s.readJSON(app, 1); launchCache = {
return ( hash : launchHash,
a && { apps : s.list(/\.info$/)
name: a.name, .map(app=>{var a=s.readJSON(app,1);return a&&{name:a.name,type:a.type,icon:a.icon,sortorder:a.sortorder,src:a.src};})
type: a.type, .filter(app=>app && (app.type=="app" || (app.type=="clock" && settings.showClocks) || !app.type))
icon: a.icon, .sort((a,b)=>{
sortorder: a.sortorder, var n=(0|a.sortorder)-(0|b.sortorder);
src: a.src, if (n) return n; // do sortorder first
} if (a.name<b.name) return -1;
); if (a.name>b.name) return 1;
})
.filter(
(app) =>
app &&
(app.type == "app" ||
(app.type == "clock" && settings.showClocks) ||
!app.type)
);
apps.sort((a, b) => {
var n = (0 | a.sortorder) - (0 | b.sortorder);
if (n) return n;
if (a.name < b.name) return -1;
if (a.name > b.name) return 1;
return 0; return 0;
}); }) };
s.writeJSON("launch.cache.json", launchCache);
}
let apps = launchCache.apps;
apps.forEach((app) => { apps.forEach((app) => {
if (app.icon) app.icon = s.read(app.icon); if (app.icon) app.icon = s.read(app.icon);
}); });