wid_edit: clean up removed widgets from settings file on boot

master
Richard de Boer 2022-01-17 19:40:33 +01:00
parent 66120e31e4
commit 80a1513030
No known key found for this signature in database
GPG Key ID: 8721727971871937
1 changed files with 14 additions and 4 deletions

View File

@ -5,10 +5,16 @@ Bangle.loadWidgets = function() {
try { eval(require("Storage").read(widget)); }
catch (e) {print(widget,e);}
});
const o = require("Storage").readJSON("wid_edit.json", 1) || {},
c = o.custom || {};
const s = require("Storage").readJSON("wid_edit.json", 1) || {},
c = s.custom || {};
let u = false; // do we need to write updated settings?
for (const w in c){
if (!(w in WIDGETS)) continue;
if (!(w in WIDGETS)) {
// widget no longer exists: remove it from settings file
delete c[w];
u = true;
continue;
}
let _W = {};
// store default area/sortorder in _WIDGETS
if (c[w].area) _W.area = WIDGETS[w].area;
@ -16,7 +22,11 @@ Bangle.loadWidgets = function() {
Object.assign(WIDGETS[w], c[w]);
_WIDGETS[w] = _W;
}
if (!Object.keys(_WIDGETS).length) delete _WIDGETS; // no need for this
if (!Object.keys(_WIDGETS).length) delete _WIDGETS; // no need for this after all
if (u) {
s.custom = c;
require("Storage").writeJSON("wid_edit.json", s);
}
const W = WIDGETS;
WIDGETS = {};
Object.keys(W)