From f532bcb5be616058b056119417841a94e86316ac Mon Sep 17 00:00:00 2001 From: Marco H Date: Tue, 12 Jul 2022 10:13:58 +0200 Subject: [PATCH] Use white icons when dark theme is enabled --- apps/widgps/widget.js | 87 +++++++++++++++++++++++++++++++------------ 1 file changed, 64 insertions(+), 23 deletions(-) diff --git a/apps/widgps/widget.js b/apps/widgps/widget.js index 0c9753bce..085e4f885 100644 --- a/apps/widgps/widget.js +++ b/apps/widgps/widget.js @@ -1,32 +1,34 @@ -(function(){ - let settings = require("Storage").readJSON("widgps.json", 1) || { - crossIcon: true - }; +(function() { +let settings = + require("Storage").readJSON("widgps.json", 1) || {crossIcon : true}; - var interval; +var interval; - // 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; - }; +// 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; +}; - WIDGETS.gps={area:"tr",width:24,draw:function() { +WIDGETS.gps = { + area : "tr", + width : 24, + draw : function() { g.reset(); // 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 + 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; } if (settings.crossIcon) { - if (Bangle.isGPSOn()) { + if (Bangle.isGPSOn()) { const gpsObject = Bangle.getGPSFix(); if (gpsObject && gpsObject.fix > 0) { g.setColor("#0F0"); // on and has fix = green @@ -36,18 +38,57 @@ } else { 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 - if (Bangle.isGPSOn()) { + const darkTheme = g.theme.dark; + if (Bangle.isGPSOn()) { const gpsObject = Bangle.getGPSFix(); 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 { - 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 { - 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); + } } } - }}; + } +}; })();