forked from FOSS/BangleApps
69 lines
1.6 KiB
JavaScript
69 lines
1.6 KiB
JavaScript
function display(text1, text2) {
|
|
g.reset();
|
|
g.clear();
|
|
var img = require("Storage").read("agpsdata.img");
|
|
if (img) {
|
|
g.drawImage(img, g.getWidth() - 48, g.getHeight() - 48 - 24);
|
|
}
|
|
g.setFont("Vector", 18);
|
|
g.setFontAlign(0, 1);
|
|
g.drawString(text1, g.getWidth() / 2, g.getHeight() / 3 + 24);
|
|
if (text2 != undefined) {
|
|
g.setFont("Vector", 12);
|
|
g.setFontAlign(-1, -1);
|
|
g.drawString(text2, 5, g.getHeight() / 3 + 29);
|
|
}
|
|
Bangle.drawWidgets();
|
|
}
|
|
|
|
// Show launcher when middle button pressed
|
|
// Load widgets
|
|
Bangle.loadWidgets();
|
|
Bangle.drawWidgets();
|
|
|
|
let waiting = false;
|
|
|
|
function start(restart) {
|
|
g.reset();
|
|
g.clear();
|
|
waiting = false;
|
|
if (!restart) {
|
|
display("Start?", "touch to start");
|
|
}
|
|
else {
|
|
display("Retry?", "touch to retry");
|
|
}
|
|
Bangle.on("touch", () => { updateAgps(); });
|
|
|
|
const file = "agpsdata.json";
|
|
let data = require("Storage").readJSON(file, 1) || {};
|
|
if (data.lastUpdate) {
|
|
g.setFont("Vector", 11);
|
|
g.drawString("last success:", 5, g.getHeight() - 22);
|
|
g.drawString(new Date(data.lastUpdate).toISOString(), 5, g.getHeight() - 11);
|
|
}
|
|
|
|
}
|
|
|
|
function updateAgps() {
|
|
g.reset();
|
|
g.clear();
|
|
if (!waiting) {
|
|
waiting = true;
|
|
display("Updating A-GPS...", "takes ~10 seconds");
|
|
require("agpsdata").pull(function() {
|
|
waiting = false;
|
|
display("A-GPS updated.", "touch to close");
|
|
Bangle.on("touch", () => { load(); });
|
|
},
|
|
function(error) {
|
|
waiting = false;
|
|
E.showAlert(error, "Error")
|
|
.then(() => { start(true); });
|
|
});
|
|
} else {
|
|
display("Waiting...");
|
|
}
|
|
}
|
|
start(false);
|