diff --git a/apps/widslimbat/metadata.json b/apps/widslimbat/metadata.json new file mode 100644 index 000000000..a83046e90 --- /dev/null +++ b/apps/widslimbat/metadata.json @@ -0,0 +1,13 @@ +{ "id": "widslimbat", + "name": "Slim battery widget with cells", + "shortName":"Slim battery with cells", + "version":"0.01", + "description": "A small (13px wide) battery widget with cells", + "icon": "widget.png", + "type": "widget", + "tags": "widget", + "supports" : ["BANGLEJS2"], + "storage": [ + {"name":"widslimbat.wid.js","url":"widget.js"} + ] +} diff --git a/apps/widslimbat/widget.js b/apps/widslimbat/widget.js new file mode 100644 index 000000000..4a8bb3b5d --- /dev/null +++ b/apps/widslimbat/widget.js @@ -0,0 +1,55 @@ +(() => { + const intervalLow = 60000; // update time when not charging + const intervalHigh = 2000; // update time when charging + const outline = atob("CRSBAD4AP/AYDAYDAYDAYDAYDAYDAYDAYD/w"); + + let COLORS = { + 'black': g.theme.dark ? "#fff" : "#000", + 'charging': "#0f0", + 'low': "#f00", + }; + + function draw() { + var i; + var oCol = COLORS.low; + var cCol = COLORS.low; + var nCells = 0; + + const bat = E.getBattery(); + if (bat>5) { + oCol = COLORS.black; + nCells = 1 + Math.floor((bat-6)/19); + } + if (nCells>1) + cCol = COLORS.black; + if (Bangle.isCharging()) + oCol = COLORS.charging; + g.reset(); + g.setColor(oCol).drawImage(outline,this.x+2,this.y+2); + for (i=0;iWIDGETS["widslimbat"].draw(),intervalLow); + + WIDGETS["widslimbat"]={ + area:"tr", + width:13, + draw:draw + }; +})(); diff --git a/apps/widslimbat/widget.png b/apps/widslimbat/widget.png new file mode 100644 index 000000000..a9c7d416d Binary files /dev/null and b/apps/widslimbat/widget.png differ