Use white icons when dark theme is enabled

master
Marco H 2022-07-12 10:13:58 +02:00 committed by Marco Heiming
parent 3207c73b4f
commit f532bcb5be
1 changed files with 64 additions and 23 deletions

View File

@ -1,32 +1,34 @@
(function(){ (function() {
let settings = require("Storage").readJSON("widgps.json", 1) || { let settings =
crossIcon: true require("Storage").readJSON("widgps.json", 1) || {crossIcon : true};
};
var interval; var interval;
// override setGPSPower so we know if GPS is on or off // override setGPSPower so we know if GPS is on or off
var oldSetGPSPower = Bangle.setGPSPower; var oldSetGPSPower = Bangle.setGPSPower;
Bangle.setGPSPower = function(on,id) { Bangle.setGPSPower = function(on, id) {
var isGPSon = oldSetGPSPower(on,id); var isGPSon = oldSetGPSPower(on, id);
WIDGETS.gps.draw(); WIDGETS.gps.draw();
return isGPSon; return isGPSon;
}; };
WIDGETS.gps={area:"tr",width:24,draw:function() { WIDGETS.gps = {
area : "tr",
width : 24,
draw : function() {
g.reset(); g.reset();
// check if we need to update the widget periodically // check if we need to update the widget periodically
if (Bangle.isGPSOn() && interval === undefined) { if (Bangle.isGPSOn() && interval === undefined) {
interval = setInterval(function() { interval = setInterval(
WIDGETS.gps.draw(WIDGETS.gps); function() { WIDGETS.gps.draw(WIDGETS.gps); },
}, 10*1000); // update every 10 seconds to show gps fix/no fix 10 * 1000); // update every 10 seconds to show gps fix/no fix
} else if (!Bangle.isGPSOn() && interval !== undefined) { } else if (!Bangle.isGPSOn() && interval !== undefined) {
clearInterval(interval); clearInterval(interval);
interval = undefined; interval = undefined;
} }
if (settings.crossIcon) { if (settings.crossIcon) {
if (Bangle.isGPSOn()) { if (Bangle.isGPSOn()) {
const gpsObject = Bangle.getGPSFix(); const gpsObject = Bangle.getGPSFix();
if (gpsObject && gpsObject.fix > 0) { if (gpsObject && gpsObject.fix > 0) {
g.setColor("#0F0"); // on and has fix = green g.setColor("#0F0"); // on and has fix = green
@ -36,18 +38,57 @@
} else { } else {
g.setColor("#888"); // off = grey g.setColor("#888"); // off = grey
} }
g.drawImage(atob("GBiBAAAAAAAAAAAAAA//8B//+BgYGBgYGBgYGBgYGBgYGBgYGB//+B//+BgYGBgYGBgYGBgYGBgYGBgYGB//+A//8AAAAAAAAAAAAA=="), this.x, 2+this.y); g.drawImage(
atob(
"GBiBAAAAAAAAAAAAAA//8B//+BgYGBgYGBgYGBgYGBgYGBgYGB//+B//+BgYGBgYGBgYGBgYGBgYGBgYGB//+A//8AAAAAAAAAAAAA=="),
this.x, 2 + this.y);
} else { // marker icons } else { // marker icons
if (Bangle.isGPSOn()) { const darkTheme = g.theme.dark;
if (Bangle.isGPSOn()) {
const gpsObject = Bangle.getGPSFix(); const gpsObject = Bangle.getGPSFix();
if (gpsObject && gpsObject.fix > 0) { if (gpsObject && gpsObject.fix > 0) {
g.drawImage(atob("GBjBAP//AAAAAAAAAAAAfgAA/wABw4ADAMAHAMAGPGAGPGAGPGAGPGADAMADAMADgcABgYABw4AAwwAAZgAAfgAAPAAAGAAAAAAAAAAAAAA="), this.x, 2+this.y); // on and has fix // on and has fix
if (!darkTheme) {
g.drawImage(
atob(
"GBjBAP//AAAAAAAAAAAAfgAA/wABw4ADAMAHAMAGPGAGPGAGPGAGPGADAMADAMADgcABgYABw4AAwwAAZgAAfgAAPAAAGAAAAAAAAAAAAAA="),
this.x, 2 + this.y);
} else {
g.drawImage(
atob(
"GBjBAP////8AAAAAAAAAfgAA/wABw4ADAMAHAMAGPGAGPGAGPGAGPGADAMADAMADgcABgYABw4AAwwAAZgAAfgAAPAAAGAAAAAAAAAAAAAA="),
this.x, 2 + this.y);
}
} else { } else {
g.drawImage(atob("GBjBAP//AAAAAAAAAAAIfgAN/4APgeAPAHAPgDAAPBgAfhgA5wwAwwwAwwwwwwAwZgAwfgAYPAAYGAAMAfAOAPAHgfAB/7AAfhAAAAAAAAA="), this.x, 2+this.y); // on but no fix // GNSS on but no fix
if (!darkTheme) {
g.drawImage(
atob(
"GBjBAP//AAAAAAAAAAAIfgAN/4APgeAPAHAPgDAAPBgAfhgA5wwAwwwAwwwwwwAwZgAwfgAYPAAYGAAMAfAOAPAHgfAB/7AAfhAAAAAAAAA="),
this.x, 2 + this.y);
} else {
g.drawImage(
atob(
"GBjBAP////8AAAAAAAAIfgAN/4APgeAPAHAPgDAAPBgAfhgA5wwAwwwAwwwwwwAwZgAwfgAYPAAYGAAMAfAOAPAHgfAB/7AAfhAAAAAAAAA="),
this.x, 2 + this.y);
}
} }
} else { } else {
g.drawImage(atob("GBjBAP//AAAAAAAAAAAAfgAY/wAcQ4AOAMAHAMAHjGAHxGAG4GAGcGADOMADHEADjgABhwABw4AAw8AAZuAAfnAAPDgAGBgAAAAAAAAAAAA="), this.x, 2+this.y); // off // GNSS off
if (!darkTheme) {
g.drawImage(
atob(
"GBjBAP//AAAAAAAAAAAAfgAY/wAcQ4AOAMAHAMAHjGAHxGAG4GAGcGADOMADHEADjgABhwABw4AAw8AAZuAAfnAAPDgAGBgAAAAAAAAAAAA="),
this.x, 2 + this.y);
} else {
g.drawImage(
atob(
"GBjBAP////8AAAAAAAAAfgAY/wAcQ4AOAMAHAMAHjGAHxGAG4GAGcGADOMADHEADjgABhwABw4AAw8AAZuAAfnAAPDgAGBgAAAAAAAAAAAA="),
this.x, 2 + this.y);
}
} }
} }
}}; }
};
})(); })();