diff --git a/apps/geissclk/ChangeLog b/apps/geissclk/ChangeLog index cd46173f7..680d820ae 100644 --- a/apps/geissclk/ChangeLog +++ b/apps/geissclk/ChangeLog @@ -2,3 +2,4 @@ 0.02: BTN2->launcher, use smaller text to allow "20:00" to fit on screen 0.03: Changed setWatch to Bangle.setUI 0.04: Tell clock widgets to hide. +0.05: Making geissclock work on Bangle.js 2 (but only animate when unlocked!) \ No newline at end of file diff --git a/apps/geissclk/clock.js b/apps/geissclk/clock.js index 5401fb142..2f1428d24 100644 --- a/apps/geissclk/clock.js +++ b/apps/geissclk/clock.js @@ -1,4 +1,7 @@ var W = 79, H = 64; +// if screen is always on, only animate when unlocked +var isScreenAlwaysOn = process.env.BOARD=="BANGLEJS2"; + /*var compiled = E.compiledC(` // void transl(int, int, int ) int transl(unsigned char *map, unsigned char *imgfrom, unsigned char *imgto) { @@ -46,6 +49,7 @@ var map = new Uint8Array(W*H); var pal = new Uint16Array(256); var PALETTES = 3; var MAPS = 6; +var animInterval; // If we're missing any maps, compute them! (function() { @@ -65,6 +69,8 @@ function randomPalette() { var n = (0|Math.random()*200000) % PALETTES; var p = new Uint8Array(pal.buffer); p.set(require("Storage").readArrayBuffer("geissclk."+n+".pal")); + if (!g.theme.dark) // if not dark, invert colors + E.mapInPlace(pal,pal,x=>x^0xFFFF); } function randomMap() { @@ -93,7 +99,7 @@ var im = { }; var lastSeconds = -1; -function iterate() { "ram" +function iterate(clearBuf) { "ram" var d = new Date(); var time = require("locale").time(d,1); var seconds = d.getSeconds().toString().padStart(2,0); @@ -108,27 +114,59 @@ function iterate() { "ram" gfx.buffer = dataa.buffer; } var x,y,n,t = getTime()/10; - var amt = 100*Bangle.getAccel().diff; - for (var i=0;i