From d66ece6a2182853aff67aaaa28d307b54ab62766 Mon Sep 17 00:00:00 2001 From: hughbarney Date: Sat, 18 Sep 2021 15:59:58 +0100 Subject: [PATCH 1/3] fixed widbatpc for bangle 2 --- apps/widbatpc/ChangeLog | 1 + apps/widbatpc/widget.js | 38 +++++++++++++++++++++++++------------- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/apps/widbatpc/ChangeLog b/apps/widbatpc/ChangeLog index a8851b1d8..64482db71 100644 --- a/apps/widbatpc/ChangeLog +++ b/apps/widbatpc/ChangeLog @@ -8,3 +8,4 @@ 0.09: Fix regression stopping correct widget updates 0.10: Add 'hide if charge greater than' 0.11: Don't overwrite existing settings on app update +0.12: Fixed for Bangle 2 diff --git a/apps/widbatpc/widget.js b/apps/widbatpc/widget.js index 9bf43cfaa..223db5f70 100644 --- a/apps/widbatpc/widget.js +++ b/apps/widbatpc/widget.js @@ -1,10 +1,23 @@ (function(){ - const COLORS = { - 'white': -1, - 'charging': 0x07E0, // "Green" - 'high': 0x05E0, // slightly darker green - 'ok': 0xFD20, // "Orange" - 'low':0xF800, // "Red" + let COLORS = {}; + + if (process.env.HWVERSION == 1) { + COLORS = { + 'white': -1, // White + 'charging': 0x07E0, // Green + 'high': 0x05E0, // lightly darker green + 'ok': 0xFD20, // Orange + 'low': 0xF800, // Red + }; + } else { + // bangle 2 is only 7 bit colors + COLORS = { + 'white': "#fff", // White + 'charging': "#0f0", // Green + 'high': "#0f0", // Green + 'ok': "#ff0", // Orange + 'low': "#f00", // Red + }; } const SETTINGS_FILE = 'widbatpc.json' @@ -66,29 +79,28 @@ // else... var s = 39; var x = this.x, y = this.y; - const l = E.getBattery(), - c = levelColor(l); + const l = E.getBattery(); const xl = x+4+l*(s-12)/100 - + c = levelColor(l); + if (Bangle.isCharging() && setting('charger')) { g.setColor(chargerColor()).drawImage(atob( "DhgBHOBzgc4HOP////////////////////3/4HgB4AeAHgB4AeAHgB4AeAHg"),x,y); x+=16; } - g.setColor(-1); + g.setColor(g.theme.fg); g.fillRect(x,y+2,x+s-4,y+21); g.clearRect(x+2,y+4,x+s-6,y+19); g.fillRect(x+s-3,y+10,x+s,y+14); - g.setColor(c).fillRect(x+4,y+6,xl,y+17); - g.setColor(-1); + g.setColor(g.theme.fg); if (!setting('percentage')) { return; } let gfx = g if (setting('color') === 'Monochrome') { // draw text inverted on battery level - gfx = Graphics.createCallback(240, 240, 1, + gfx = Graphics.createCallback(g.getWidth(),g.getHeight(), 1, (x,y) => {g.setPixel(x,y,x<=xl?0:-1)}) } gfx.setFontAlign(-1,-1); From b7a101dca315a55d9f86708e12dd302e5345b88a Mon Sep 17 00:00:00 2001 From: hughbarney Date: Sat, 18 Sep 2021 16:03:00 +0100 Subject: [PATCH 2/3] Updated version, added README for widbatpc --- apps.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps.json b/apps.json index 67981e91b..9436c9f6b 100644 --- a/apps.json +++ b/apps.json @@ -639,10 +639,11 @@ "name": "Battery Level Widget (with percentage)", "shortName": "Battery Widget", "icon": "widget.png", - "version":"0.11", + "version":"0.12", "description": "Show the current battery level and charging status in the top right of the clock, with charge percentage", - "tags": "widget,battery", + "tags": "widget,battery,b2", "type":"widget", + "readme": "README.md", "storage": [ {"name":"widbatpc.wid.js","url":"widget.js"}, {"name":"widbatpc.settings.js","url":"settings.js"} From 4d55673f786de4a2d80a547f25214d05d04a23f1 Mon Sep 17 00:00:00 2001 From: hughbarney Date: Sat, 18 Sep 2021 16:03:44 +0100 Subject: [PATCH 3/3] Added README and screenshot for widbatpc --- apps/widbatpc/README.md | 8 ++++++++ apps/widbatpc/screenshot.jpg | Bin 0 -> 15828 bytes 2 files changed, 8 insertions(+) create mode 100644 apps/widbatpc/README.md create mode 100644 apps/widbatpc/screenshot.jpg diff --git a/apps/widbatpc/README.md b/apps/widbatpc/README.md new file mode 100644 index 000000000..6e8fd10cc --- /dev/null +++ b/apps/widbatpc/README.md @@ -0,0 +1,8 @@ +# Battery Widget + +Show the current battery level and charging status in the top right of the clock, with charge percentage + +Works with Bangle 1 and Bangle 2 + +![](screenshot.jpg) + diff --git a/apps/widbatpc/screenshot.jpg b/apps/widbatpc/screenshot.jpg new file mode 100644 index 0000000000000000000000000000000000000000..48f9893ecf124d426541f5fa7f455a938d2fa919 GIT binary patch literal 15828 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