2021-02-12 20:34:10 +00:00
|
|
|
(function(){
|
2022-05-07 08:39:28 +00:00
|
|
|
var interval;
|
|
|
|
|
2022-02-24 11:01:37 +00:00
|
|
|
// override setGPSPower so we know if GPS is on or off
|
|
|
|
var oldSetGPSPower = Bangle.setGPSPower;
|
|
|
|
Bangle.setGPSPower = function(on,id) {
|
|
|
|
var isGPSon = oldSetGPSPower(on,id);
|
|
|
|
WIDGETS.gps.draw();
|
|
|
|
return isGPSon;
|
|
|
|
}
|
2021-05-28 13:38:14 +00:00
|
|
|
|
2022-02-24 11:01:37 +00:00
|
|
|
WIDGETS.gps={area:"tr",width:24,draw:function() {
|
2021-02-12 20:34:10 +00:00
|
|
|
g.reset();
|
|
|
|
if (Bangle.isGPSOn()) {
|
2022-02-14 10:59:15 +00:00
|
|
|
const gpsObject = Bangle.getGPSFix();
|
|
|
|
if (gpsObject && gpsObject.fix > 0) {
|
|
|
|
g.setColor("#0F0"); // on and has fix = green
|
|
|
|
} else {
|
|
|
|
g.setColor("#FD0"); // on but no fix = amber
|
|
|
|
}
|
2021-02-12 20:34:10 +00:00
|
|
|
} else {
|
2021-10-29 19:21:12 +00:00
|
|
|
g.setColor("#888"); // off = grey
|
2021-02-12 20:34:10 +00:00
|
|
|
}
|
2022-05-07 11:26:35 +00:00
|
|
|
|
|
|
|
// check if we need to update the widget periodically
|
|
|
|
if (Bangle.isGPSOn() && interval === undefined) {
|
|
|
|
interval = setInterval(function() {
|
|
|
|
WIDGETS.gps.draw(WIDGETS.gps);
|
|
|
|
}, 10*1000); // update every 10 seconds to show gps fix/no fix
|
|
|
|
} else if (!Bangle.isGPSOn() && interval !== undefined) {
|
|
|
|
clearInterval(interval);
|
|
|
|
interval = undefined;
|
|
|
|
}
|
2021-10-29 19:21:12 +00:00
|
|
|
g.drawImage(atob("GBiBAAAAAAAAAAAAAA//8B//+BgYGBgYGBgYGBgYGBgYGBgYGB//+B//+BgYGBgYGBgYGBgYGBgYGBgYGB//+A//8AAAAAAAAAAAAA=="), this.x, 2+this.y);
|
2022-02-24 11:01:37 +00:00
|
|
|
}};
|
2021-02-12 20:34:10 +00:00
|
|
|
})();
|