From 2216398bb85ecac115a4484ea2bcf15d43d6710f Mon Sep 17 00:00:00 2001 From: Hugh Barney Date: Sun, 16 Apr 2023 17:01:30 +0100 Subject: [PATCH] Yet Another Battery Widget --- apps/widbatc/README.md | 11 +++++++++++ apps/widbatc/icon.png | Bin 0 -> 9333 bytes apps/widbatc/metadata.json | 17 +++++++++++++++++ apps/widbatc/screenshot.png | Bin 0 -> 2703 bytes apps/widbatc/widget.js | 26 ++++++++++++++++++++++++++ 5 files changed, 54 insertions(+) create mode 100644 apps/widbatc/README.md create mode 100644 apps/widbatc/icon.png create mode 100644 apps/widbatc/metadata.json create mode 100644 apps/widbatc/screenshot.png create mode 100644 apps/widbatc/widget.js diff --git a/apps/widbatc/README.md b/apps/widbatc/README.md new file mode 100644 index 000000000..9b8bb992f --- /dev/null +++ b/apps/widbatc/README.md @@ -0,0 +1,11 @@ +# Yet Another Battery Widget + +Shows the current battery level status in the top right in digits using the Lato font + +* Works with Bangle 2 +* Simple design, no settings +* Uses current colour theme to match clock + +![](screenshot.png) + +Written by: [Hugh Barney](https://github.com/hughbarney) For support and discussion please post in the [Bangle JS Forum](http://forum.espruino.com/microcosms/1424/) diff --git a/apps/widbatc/icon.png b/apps/widbatc/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..92710fb4bc85a216ed230da4f680a95f6ee81d7c GIT binary patch literal 9333 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 B!Ds*g literal 0 HcmV?d00001 diff --git a/apps/widbatc/widget.js b/apps/widbatc/widget.js new file mode 100644 index 000000000..978edc8e8 --- /dev/null +++ b/apps/widbatc/widget.js @@ -0,0 +1,26 @@ +setInterval(()=>WIDGETS["batc"].draw(), 60000); +Bangle.on('lcdPower', function(on) { + if (on) WIDGETS["bata"].draw(); +}); +WIDGETS["bata"]={area:"tr",sortorder:10,width:48,draw:function() { + g.reset(); + // Lato from fonts.google.com, Actual height 17 (17 - 1), Numeric only + const scale = 1; + g.setFontCustom(atob("AAAAABwAAOAAAgAAHAADwAD4AB8AB8AA+AAeAADAAAAOAAP+AH/8B4DwMAGBgAwMAGBgAwOAOA//gD/4AD4AAAAAAAABgAAcAwDAGAwAwP/+B//wAAGAAAwAAGAAAAAAAAIAwHgOA4DwMA+BgOwMDmBg4wOeGA/gwDwGAAAAAAAAAGAHA8A4DwMAGBhAwMMGBjgwOcOA+/gDj4AAAAABgAAcAAHgADsAA5gAOMAHBgBwMAP/+B//wABgAAMAAAAAAAgD4OB/AwOYGBjAwMYGBjBwMe8Bh/AIHwAAAAAAAAAfAAP8AHxwB8GAdgwPMGBxgwMOOAB/gAH4AAAAAAABgAAMAABgAwMAeBgPgMHwBj4AN8AB+AAPAABAAAAAAAMfAH38B/xwMcGBhgwMMGBjgwP+OA+/gDj4AAAAAAAAOAAH4AA/gQMMGBgzwME8BhvAOPgA/4AD8AAEAAAAAAGAwA4OAHBwAAA="), 46, atob("BAgMDAwMDAwMDAwMBQ=="), 21+(scale<<8)+(1<<16)); + var bp = "" + E.getBattery().toString(); + var text_w = g.stringWidth(bp); + var bw = 7; // battery width + var w = text_w + 3 + bw + 2; + // we need this to be able to shrink or grow on the 3,2,1 digit battery levels + if (w != this.width) {this.width = w; setTimeout(() => Bangle.drawWidgets(),10); return;} + var h = 12; // height + var x = this.x, y = this.y + 4; + g.setColor(g.theme.bg); + g.fillRect(this.x, this.y, this.x + this.width, this.y + 23); // erase background + g.setColor(g.theme.fg); + g.setFontAlign(-1, 0); + g.drawString(bp, this.x, this.y + 12); + x = x + text_w + 3; + g.fillRect(x+2,y,x+5,y+1); // contact + g.fillRect(x,y+2,x+bw,y+2+h); // outer +}};