BangleApps/apps/boot/bootloader.js

44 lines
1.3 KiB
JavaScript
Raw Normal View History

// This runs after a 'fresh' boot
2020-06-10 06:57:24 +00:00
var clockApp=(require("Storage").readJSON("setting.json",1)||{}).clock;
2020-06-06 20:32:50 +00:00
if (clockApp) clockApp = require("Storage").read(clockApp);
if (!clockApp) {
2020-06-10 08:04:48 +00:00
clockApp = require("Storage").list(/\.info$/)
.map(file => {
const app = require("Storage").readJSON(file,1);
if (app && app.type == "clock") {
return app;
}
})
.filter(x=>x)
.sort((a, b) => a.sortorder - b.sortorder)[0];
2020-06-10 06:57:24 +00:00
if (clockApp)
clockApp = require("Storage").read(clockApp.src);
}
if (!clockApp) clockApp=`E.showMessage("No Clock Found");
setWatch(() => {
Bangle.showLauncher();
}, BTN2, {repeat:false,edge:"falling"});)
`;
// check to see if our clock is wrong - if it is use GPS time
if ((new Date()).getFullYear()<2000) {
E.showMessage("Searching for\nGPS time");
2020-06-10 06:57:24 +00:00
Bangle.on("GPS",function cb(g) {
Bangle.setGPSPower(0);
Bangle.removeListener("GPS",cb);
if (!g.time || (g.time.getFullYear()<2000) ||
(g.time.getFullYear()>2200)) {
// GPS receiver's time not set - just boot clock anyway
2020-06-06 20:32:50 +00:00
eval(clockApp);
delete clockApp;
return;
}
// We have a GPS time. Set time and reboot (to load alarms properly)
setTime(g.time.getTime()/1000);
load();
});
Bangle.setGPSPower(1);
} else {
eval(clockApp);
delete clockApp;
2019-11-06 22:12:54 +00:00
}