diff --git a/apps/bwclk/ChangeLog b/apps/bwclk/ChangeLog new file mode 100644 index 000000000..2286a7f70 --- /dev/null +++ b/apps/bwclk/ChangeLog @@ -0,0 +1 @@ +0.01: New App! \ No newline at end of file diff --git a/apps/bwclk/README.md b/apps/bwclk/README.md new file mode 100644 index 000000000..49ee7f593 --- /dev/null +++ b/apps/bwclk/README.md @@ -0,0 +1,7 @@ +# Black & White clock + +![](screenshot.png) + + +## Creator +- [David Peer](https://github.com/peerdavid) diff --git a/apps/bwclk/app-icon.js b/apps/bwclk/app-icon.js new file mode 100644 index 000000000..28f75c4e6 --- /dev/null +++ b/apps/bwclk/app-icon.js @@ -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")) diff --git a/apps/bwclk/app.js b/apps/bwclk/app.js new file mode 100644 index 000000000..709597a0b --- /dev/null +++ b/apps/bwclk/app.js @@ -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"); diff --git a/apps/bwclk/app.png b/apps/bwclk/app.png new file mode 100644 index 000000000..29875b1dc Binary files /dev/null and b/apps/bwclk/app.png differ diff --git a/apps/bwclk/metadata.json b/apps/bwclk/metadata.json new file mode 100644 index 000000000..0d48401c6 --- /dev/null +++ b/apps/bwclk/metadata.json @@ -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}, + ] +} diff --git a/apps/bwclk/screenshot.png b/apps/bwclk/screenshot.png new file mode 100644 index 000000000..182a85321 Binary files /dev/null and b/apps/bwclk/screenshot.png differ