forked from FOSS/BangleApps
Bootloader tweaks to load widgets before clock
parent
ffc0bff6a3
commit
24269067b9
|
@ -6,8 +6,8 @@ try {
|
||||||
if (startapp) {
|
if (startapp) {
|
||||||
eval(require("Storage").read(startapp.src));
|
eval(require("Storage").read(startapp.src));
|
||||||
} else {
|
} else {
|
||||||
delete startapp;
|
|
||||||
setWatch(function displayMenu() {
|
setWatch(function displayMenu() {
|
||||||
|
Bangle.setLCDOffset(0); // remove notifications
|
||||||
Bangle.setLCDMode("direct");
|
Bangle.setLCDMode("direct");
|
||||||
g.clear();
|
g.clear();
|
||||||
clearInterval();
|
clearInterval();
|
||||||
|
@ -77,53 +77,53 @@ if (startapp) {
|
||||||
g.setFont("6x8",2);
|
g.setFont("6x8",2);
|
||||||
g.setFontAlign(0,0);
|
g.setFontAlign(0,0);
|
||||||
g.drawString("Loading...",120,120);
|
g.drawString("Loading...",120,120);
|
||||||
// load like this so we ensure we've cleared out our RAM
|
// if clock, just set the default setting and restart
|
||||||
var cmd = 'eval(require("Storage").read("'+apps[selected].src+'"));';
|
|
||||||
setTimeout(process.memory,10); // force GC
|
|
||||||
setTimeout(cmd,20);
|
|
||||||
// re-add the menu button if we're going to the clock
|
|
||||||
if (apps[selected].type=="clock") {
|
if (apps[selected].type=="clock") {
|
||||||
setWatch(displayMenu, BTN2, {repeat:false,edge:"falling"});
|
try {
|
||||||
WIDGETPOS={tl:32,tr:g.getWidth()-32,bl:32,br:g.getWidth()-32};
|
var settings = require("Storage").readJSON('@setting');
|
||||||
WIDGETS={};
|
settings.clock = apps[selected].id;
|
||||||
require("Storage").list().filter(a=>a[0]=='=').forEach(widget=>eval(require("Storage").read(widget)));
|
require("Storage").write('@setting',settings);
|
||||||
setTimeout(drawWidgets,100);
|
} catch (e) { }
|
||||||
|
load();
|
||||||
} else {
|
} else {
|
||||||
delete WIDGETS;
|
// load like this so we ensure we've cleared out our RAM
|
||||||
delete WIDGETPOS;
|
setTimeout(process.memory,10); // force GC
|
||||||
delete drawWidgets;
|
setTimeout('eval(require("Storage").read("'+apps[selected].src+'"));',20);
|
||||||
|
// allow widgets in apps
|
||||||
|
if (!apps[selected].hasWidgets) {
|
||||||
|
delete WIDGETS;
|
||||||
|
delete WIDGETPOS;
|
||||||
|
delete drawWidgets;
|
||||||
|
} else setTimeout(drawWidgets,100);
|
||||||
}
|
}
|
||||||
}, BTN2, {repeat:true,edge:"falling"});
|
}, BTN2, {repeat:true,edge:"falling"});
|
||||||
}, BTN2, {repeat:false,edge:"falling"}); // menu on middle button
|
}, BTN2, {repeat:false,edge:"falling"}); // menu on middle button
|
||||||
|
|
||||||
var WIDGETPOS={tl:32,tr:g.getWidth()-32,bl:32,br:g.getWidth()-32};
|
var WIDGETPOS={tl:32,tr:g.getWidth()-32,bl:32,br:g.getWidth()-32};
|
||||||
var WIDGETS={};
|
var WIDGETS={};
|
||||||
function drawWidgets() {
|
function drawWidgets() { for (var w of WIDGETS) w.draw(); }
|
||||||
for (var w of WIDGETS) w.draw();
|
|
||||||
}
|
|
||||||
var settings;
|
var settings;
|
||||||
try {
|
try {
|
||||||
settings = require("Storage").readJSON('@setting');
|
settings = require("Storage").readJSON('@setting');
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
settings = {}
|
settings = {}
|
||||||
}
|
}
|
||||||
|
// load widgets
|
||||||
|
require("Storage").list().filter(a=>a[0]=='=').forEach(widget=>eval(require("Storage").read(widget)));
|
||||||
|
setTimeout(drawWidgets,100);
|
||||||
|
// load clock if specified
|
||||||
var clockApp = settings.clock;
|
var clockApp = settings.clock;
|
||||||
if (clockApp) {
|
if (clockApp) clockApp = require("Storage").read(clockApp)
|
||||||
clockApp = require("Storage").read(clockApp)
|
|
||||||
}
|
|
||||||
if (!clockApp) {
|
if (!clockApp) {
|
||||||
var clockApps = require("Storage").list().filter(a=>a[0]=='+').map(app=>{
|
var clockApps = require("Storage").list().filter(a=>a[0]=='+').map(app=>{
|
||||||
try { return require("Storage").readJSON(app); }
|
try { return require("Storage").readJSON(app); }
|
||||||
catch (e) {}
|
catch (e) {}
|
||||||
}).filter(app=>app.type=="clock").sort((a, b) => a.sortorder - b.sortorder);
|
}).filter(app=>app.type=="clock").sort((a, b) => a.sortorder - b.sortorder);
|
||||||
if (clockApps && clockApps.length > 0) {
|
if (clockApps && clockApps.length > 0)
|
||||||
clockApp = require("Storage").read(clockApps[0].src);
|
clockApp = require("Storage").read(clockApps[0].src);
|
||||||
}
|
delete clockApps;
|
||||||
}
|
}
|
||||||
if (clockApp) eval(clockApp);
|
if (clockApp) eval(clockApp);
|
||||||
else E.showMessage("No Clock Found");
|
else E.showMessage("No Clock Found");
|
||||||
|
delete clockApp;
|
||||||
delete clockApps;
|
|
||||||
require("Storage").list().filter(a=>a[0]=='=').forEach(widget=>eval(require("Storage").read(widget)));
|
|
||||||
setTimeout(drawWidgets,100);
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue