Change color if step goals is reached. Change icon if charging.

master
David Peer 2022-01-21 20:04:48 +01:00
parent ab0c963e46
commit 474bd7f24d
2 changed files with 28 additions and 14 deletions

View File

@ -8,6 +8,9 @@ black one the battery level (100% = 0°, 75% = 270°, 50% = 180°, ...).
The selected theme is also respected. Note that this watch face is in fullscreen The selected theme is also respected. Note that this watch face is in fullscreen
mode - widgets are still loaded in background... mode - widgets are still loaded in background...
## Other features
- If you have done more than 10k steps, the red hand and icon will turn green.
- If the battery is charged, the icons will change.
## Screenshots ## Screenshots
![](screenshot_1.png) ![](screenshot_1.png)

View File

@ -14,13 +14,20 @@ var stepsImg = {
width : 32, height : 32, bpp : 1, width : 32, height : 32, bpp : 1,
transparent : 0, transparent : 0,
buffer : require("heatshrink").decompress(atob("gPAAYMD+ADBg4DD/ADG/gDBh4DCA4YDBg/AAYMP8ADBj4DIgf8n4DB/ADBgIDDwADBgE8AYQTCgH+AYV+n5RBAYkfAYM8g+AIIMwMoU+AYV/AY1+AY08AYU4gAA=")) buffer : require("heatshrink").decompress(atob("gPAAYMD+ADBg4DD/ADG/gDBh4DCA4YDBg/AAYMP8ADBj4DIgf8n4DB/ADBgIDDwADBgE8AYQTCgH+AYV+n5RBAYkfAYM8g+AIIMwMoU+AYV/AY1+AY08AYU4gAA="))
} };
var batImg = { var batImg = {
width : 32, height : 32, bpp : 1, width : 32, height : 32, bpp : 1,
transparent : 0, transparent : 0,
buffer : require("heatshrink").decompress(atob("ADf/AAPwAYfABQMwAYfHnPAAYc/AY0zAZwXHFYgDDH45jbA=")) buffer : require("heatshrink").decompress(atob("ADf/AAPwAYfABQMwAYfHnPAAYc/AY0zAZwXHFYgDDH45jbA="))
} };
var chargeImg = {
width : 32, height : 32, bpp : 1,
transparent : 0,
buffer : require("heatshrink").decompress(atob("AAMMAYUeAYUzAYVjAYXGAQMPxwDBj8cAYM73ADBuPwEAPg8E+gHAuFzgOAnHjAYMd40BwOPxkBwfHjEBw1j2ADBsPgBYPAAYIYBsEDFoPgg+AgPAg/AgeAhgJBgEYuf+AYM//BhBnAYBh1wKQXAAYM5wADBBQQoBAYQOCgA="))
};
/* /*
* Based on the great multi clock from https://github.com/jeffmer/BangleApps/ * Based on the great multi clock from https://github.com/jeffmer/BangleApps/
@ -88,21 +95,29 @@ function drawLines() {
function drawHands() { function drawHands() {
g.setFontAlign(0,0,0);
// Set hand functions // Set hand functions
var drawBatteryHand = g.drawRotRect.bind(g,6,12,R-38); var drawBatteryHand = g.drawRotRect.bind(g,6,12,R-38);
var drawStepsHand = g.drawRotRect.bind(g,5,12,R-24); var drawStepsHand = g.drawRotRect.bind(g,5,12,R-24);
// Draw hands // Draw bat hand and icon
var bat = E.getBattery(); var bat = E.getBattery();
var maxBat = 100; var maxBat = 100;
var img = Bangle.isCharging() ? chargeImg : batImg;
g.setColor(g.theme.fg); g.setColor(g.theme.fg);
g.drawImage(img, cx/2 - img.width/2, cy + cy/2 - img.height/2);
drawBatteryHand(parseInt(bat*360/maxBat)); drawBatteryHand(parseInt(bat*360/maxBat));
// Draw step hand and icon
var steps = getSteps(); var steps = getSteps();
var maxSteps = 10000; var maxSteps = 10000;
g.setColor(1.0,0.0,0.0); var stepsColor = steps > 10000 ? "#00ff00" : "#ff0000";
g.setColor(stepsColor);
g.drawImage(stepsImg, cx + cx/2 - stepsImg.width/2, cy/2 - stepsImg.height/2);
drawStepsHand(parseInt(steps*360/maxSteps)); drawStepsHand(parseInt(steps*360/maxSteps));
// Draw circle
g.setColor(g.theme.fg); g.setColor(g.theme.fg);
g.fillCircle(cx, cy, 7); g.fillCircle(cx, cy, 7);
g.setColor(g.theme.bg); g.setColor(g.theme.bg);
@ -147,15 +162,6 @@ function drawDate(){
g.drawString(currentDate.getDate(), cx+cx/2, cy+cy/2); g.drawString(currentDate.getDate(), cx+cx/2, cy+cy/2);
} }
function drawIcons(){
g.setFontAlign(0,0,0);
g.setColor(1,0,0);
g.drawImage(stepsImg, cx + cx/2 - stepsImg.width/2, cy/2 - stepsImg.height/2);
g.setColor(g.theme.fg);
g.drawImage(batImg, cx/2 - batImg.width/2, cy + cy/2 - batImg.height/2);
}
function draw(){ function draw(){
// Clear watch face // Clear watch face
g.reset(); g.reset();
@ -165,7 +171,6 @@ function draw(){
g.setColor(1,1,1); g.setColor(1,1,1);
drawLines(); drawLines();
drawIcons();
drawHands(); drawHands();
drawTime(); drawTime();
drawDate(); drawDate();
@ -197,6 +202,12 @@ function queueDraw() {
} }
Bangle.on('charging',function(charging) {
draw();
});
/* /*
* Lets start widgets, listen for btn etc. * Lets start widgets, listen for btn etc.
*/ */