diff --git a/apps/wid_a_battery_widget/ChangeLog.txt b/apps/wid_a_battery_widget/ChangeLog.txt new file mode 100644 index 000000000..52850c022 --- /dev/null +++ b/apps/wid_a_battery_widget/ChangeLog.txt @@ -0,0 +1 @@ +1.0: Release for Bangle 2 (2021/11/18) diff --git a/apps/wid_a_battery_widget/a_battery_widget-pic.jpg b/apps/wid_a_battery_widget/a_battery_widget-pic.jpg new file mode 100644 index 000000000..9d9a4decc Binary files /dev/null and b/apps/wid_a_battery_widget/a_battery_widget-pic.jpg differ diff --git a/apps/wid_a_battery_widget/widget.js b/apps/wid_a_battery_widget/widget.js new file mode 100644 index 000000000..9fb06e320 --- /dev/null +++ b/apps/wid_a_battery_widget/widget.js @@ -0,0 +1,45 @@ +(function(){ + let COLORS = { + 'white': "#fff", + 'black': "#000", + 'charging': "#08f", + 'high': "#000", + 'low': "#f00", + }; + + const levelColor = (l) => { + if (Bangle.isCharging()) return COLORS.charging; + if (l >= 30) return COLORS.high; + return COLORS.low; + }; + + function draw() { + var s = 29; + var x = this.x, y = this.y; + + const l = E.getBattery(); + + let xl = x+4+l*(s-12)/100; + + g.setColor(COLORS.white); + g.fillRect(x+2,y+5,x+s-6,y+18); + + g.setColor(levelColor(l)); + g.fillRect(x+1,y+3,x+s-5,y+4); + g.fillRect(x+1,y+19,x+s-5,y+20); + g.fillRect(x,y+4,x+1,y+19); + g.fillRect(x+s-5,y+4,x+s-4,y+19); + g.fillRect(x+s-3,y+8,x+s-2,y+16); // tip of the battery + g.fillRect(x+4,y+15,xl,y+16); // charging bar + + g.setColor(COLORS.black); + g.setFontAlign(0,0); + g.setFont('6x8'); + g.drawString(l, x + 14, y + 10); + } + + Bangle.on('charging',function(charging) { draw(); }); + setInterval(()=>WIDGETS["wid_a_battery_widget"].draw(), 60000); + + WIDGETS["wid_a_battery_widget"]={area:"tr",width:30,draw:draw}; +})(); diff --git a/apps/wid_a_battery_widget/widget.png b/apps/wid_a_battery_widget/widget.png new file mode 100644 index 000000000..868628b60 Binary files /dev/null and b/apps/wid_a_battery_widget/widget.png differ