BangleApps/apps/widChargingStatus/widget.ts

40 lines
948 B
TypeScript

(() => {
const icon = require('heatshrink').decompress(
atob(
'ikggMAiEAgYIBmEAg4EB+EAh0AgPggEeCAIEBnwQBAgP+gEP//x///j//8f//k///H//4BYOP/4lBv4bDvwEB4EAvAEBwEAuA7DCAI7BgAQBhEAA'
)
);
const iconWidth = 18;
function draw(this: { x?: number; y?: number }) {
g.reset();
if (Bangle.isCharging()) {
g.setColor('#FD0');
g.drawImage(icon, this.x! + 1, this.y! + 1, {
scale: 0.6875,
});
}
}
WIDGETS["chargingStatus"] = {
area: 'tr',
width: Bangle.isCharging() ? iconWidth : 0,
draw: draw,
};
Bangle.on('charging', (charging) => {
const widget = WIDGETS["chargingStatus"];
if (widget) {
if (charging) {
Bangle.buzz();
widget.width = iconWidth;
} else {
Promise.resolve().then(() => require("buzz").pattern("..;"));
widget.width = 0;
}
Bangle.drawWidgets(); // re-layout widgets
g.flip();
}
});
})();