Add black and white clock

master
David Peer 2022-03-25 17:22:39 +01:00
parent c32040c311
commit ab0c299a27
7 changed files with 123 additions and 0 deletions

1
apps/bwclk/ChangeLog Normal file
View File

@ -0,0 +1 @@
0.01: New App!

7
apps/bwclk/README.md Normal file
View File

@ -0,0 +1,7 @@
# Black & White clock
![](screenshot.png)
## Creator
- [David Peer](https://github.com/peerdavid)

1
apps/bwclk/app-icon.js Normal file
View File

@ -0,0 +1 @@
require("heatshrink").decompress(atob("mEwgc8+fAgEgwAMDvPnz99BYdl2weHtu27ft2AGBiEcuEAhAPDg4jGgECIRMN23fthUNgP374vBAB3gAgc/gAXNjlx4EDxwJEpAjG/6IBjkBL4UAjVgBAJuCgPHBQMFEIkkyQjFhwEClgXBEYNBwkQJoibCBwNFBAUCEAVAQZAjC/8euPHDon//hKB//xEYMP//jBYP/+ARDNYM///+EYIgBj1B/8fCIUhEYQRB//FUIM/EZU4EYMkEYP/8VhEYUH/gRBWAUfI4MD+AjBoAsBwEH8EB/EDwE4HwYjCuEHWAOHgExEYKbBCIZNB8fAEYQHByE/EwPABAY+BgRHDBANyJQXHNwIjD8CSBj/+BwMSTwOOBYK2D/4CCNYZQB/iJBQwYjCCIcAgeBSoOAWYQjEVoIRCNAIjKAQKJBgAFC8ZoCWwJbDABMHGQPAAoMQB5EDx/4A4gqBZwIGCWwIABuBWC4EBZwPgv/AcwS/EAAcIU4IRBVQIRKEwIjBv0ARIUDCJIjD//x/ARK/5HC/+BCJkcI45uDgECUgQjCWAM4WwUBWYanEAA8cTARWBEYUC5RAHw1YgEOFQXADQPHIIkAhgICuARBh0A23blhHBagIKBsOGjNswhHDEYUUAoTUBhkxEYMwKwU503bvuwXILmCEYMYsumWYYjB85lDEYovBEYXm7fs25EBI4kYtOWNwIjD4+8NYsw4YjGz9/2hrEoOGjVBwE4NYdzNYSwBuEDEYcxaIUA8+atugGogjBiVgWAI"))

97
apps/bwclk/app.js Normal file
View File

@ -0,0 +1,97 @@
const locale = require('locale');
// timeout used to update every minute
var W = g.getWidth();
var H = g.getHeight();
var drawTimeout;
// schedule a draw for the next minute
function queueDraw() {
if (drawTimeout) clearTimeout(drawTimeout);
drawTimeout = setTimeout(function() {
drawTimeout = undefined;
draw();
}, 60000 - (Date.now() % 60000));
}
function getSteps() {
try{
if (WIDGETS.wpedom !== undefined) {
return WIDGETS.wpedom.getSteps();
} else if (WIDGETS.activepedom !== undefined) {
return WIDGETS.activepedom.getSteps();
}
} catch(ex) {
// In case we failed, we can only show 0 steps.
}
return 0;
}
function draw() {
// Hide widgets
for (let wd of WIDGETS) {wd.draw=()=>{};wd.area="";}
// Clear old watch face
var x = W/2;
var y = H/2-20;
g.reset().clearRect(0,0,W,W);
// Draw background
g.setColor("#000");
g.fillRect(0,0,W/2,H/2);
g.setColor("#fff");
g.fillRect(W/2,H/2,W/2,H/2);
// // Draw time
// var date = new Date();
// var timeStr = locale.time(date,1);
// g.setFontAlign(0,0);
// g.setFontTime();
// g.drawString(timeStr, x, y);
// // Draw date
// y += 50;
// x = x - g.stringWidth(timeStr) / 2 + 5;
// g.setFontDate();
// g.setFontAlign(-1,0);
// var dateStr = locale.dow(date, true).toUpperCase() + date.getDate();
// var fc = Bangle.isLocked() ? "#0ff" :"#fff";
// fc = E.getBattery() < 50 ? "#f00" : fc;
// g.drawString(dateStr, x, y);
// queue draw in one minute
queueDraw();
}
Bangle.loadWidgets();
// Clear the screen once, at startup
g.setTheme({bg:"#000",fg:"#fff",dark:false}).clear();
// draw immediately at first, queue update
draw();
// Stop updates when LCD is off, restart when on
Bangle.on('lcdPower',on=>{
if (on) {
draw(); // draw immediately, queue redraw
} else { // stop draw timer
if (drawTimeout) clearTimeout(drawTimeout);
drawTimeout = undefined;
}
});
Bangle.on('lock', function(isLocked) {
print("LOCK");
if (drawTimeout) clearTimeout(drawTimeout);
drawTimeout = undefined;
draw();
});
// Show launcher when middle button pressed
Bangle.setUI("clock");

BIN
apps/bwclk/app.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

17
apps/bwclk/metadata.json Normal file
View File

@ -0,0 +1,17 @@
{
"id": "bwclk",
"name": "BlackWhite Clock",
"version": "0.01",
"description": "Black and white clock.",
"readme": "README.md",
"icon": "app.png",
"screenshots": [{"url":"screenshot.png"}],
"type": "clock",
"tags": "clock",
"supports": ["BANGLEJS2"],
"allow_emulator": true,
"storage": [
{"name":"bwclk.app.js","url":"app.js"},
{"name":"bwclk.img","url":"app-icon.js","evaluate":true},
]
}

BIN
apps/bwclk/screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB