Merge pull request #1802 from idavydov/widslimbat

Slim battery widget with cells
pull/1806/head^2
Gordon Williams 2022-05-09 09:40:37 +01:00 committed by GitHub
commit a801922562
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 68 additions and 0 deletions

View File

@ -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"}
]
}

55
apps/widslimbat/widget.js Normal file
View File

@ -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;i<nCells;i++) {
var x = this.x+2+2;
var y = this.y+16+2-i*3;
g.setColor(cCol).drawRect(x,y,x+4,y+1);
}
if (Bangle.isCharging()) {
changeInterval(id,intervalHigh);
} else {
changeInterval(id,intervalLow);
}
}
Bangle.on("charging",function(charging) {
if (charging) Bangle.buzz();
WIDGETS["widslimbat"].draw();
});
Bangle.on('lcdPower',function(on) {
WIDGETS["widslimbat"].draw();
});
var id = setInterval(()=>WIDGETS["widslimbat"].draw(),intervalLow);
WIDGETS["widslimbat"]={
area:"tr",
width:13,
draw:draw
};
})();

BIN
apps/widslimbat/widget.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB