diff --git a/apps/distortclk/ChangeLog b/apps/distortclk/ChangeLog index 9bec1d7a4..4c7291526 100644 --- a/apps/distortclk/ChangeLog +++ b/apps/distortclk/ChangeLog @@ -1 +1,2 @@ 0.01: New face! +0.02: Improved clock diff --git a/apps/distortclk/app.js b/apps/distortclk/app.js index ff44063d4..a9fdd1ef2 100644 --- a/apps/distortclk/app.js +++ b/apps/distortclk/app.js @@ -8,85 +8,43 @@ const offset = 25; const width = g.getWidth(); const height = g.getHeight(); -const locale = require("locale"); - +var drawTimeout; var fgTime = 0xf800; var bgTime = 0x3333ff; var dayDate = 0x000; -function time() { //numbers +function queueDraw() { + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = setTimeout(function() { + drawTimeout = undefined; + draw(); + }, 60000 - (Date.now() % 60000)); +} + +function time() { require("Font4x5").add(Graphics); - - const d = new Date(); - const h = d.getHours(), - m = d.getMinutes(); - - const day = Date.now(); - const mo = d.getMonth()+1; - - var middle= ":"; - - const date = january(d.getMonth())+" "+d.getDate(); - const time = h + " " + ("0" + m).substr(-2); - - // time - //g.setColor(0, 0, 0); + var d = new Date(); + var day = d.getDate(); + var time = require("locale").time(d,1); + var date = require("locale").date(d); + var mo = require("date_utils").month(d.getMonth()+1,0); + g.setFontAlign(0,0); g.setFontSixCaps(2).setColor(fgTime).drawString(time, width/2, height/2+10); g.setFont("4x5",2); g.setFontAlign(0,0); - g.setColor(dayDate).drawString(date,width-50, height-16); -} - -function january(month){ //switch case for month names - switch (month){ - case 0: - middle="January"; - return middle; - case 1: - middle="February"; - return middle; - case 2: - middle="March"; - return middle; - case 3: - middle="April"; - return middle; - case 4: - middle="May"; - return middle; - case 5: - middle="June"; - return middle; - case 6: - middle="July"; - return middle; - case 7: - middle="August"; - return middle; - case 8: - middle="September"; - return middle; - case 9: - middle="October"; - return middle; - case 10: - middle="November"; - return middle; - case 11: - middle="December"; - return middle; - } + g.setColor(dayDate).drawString(mo,width-55, height-16); + g.drawString(day,width-10, height-16); } function draw() { g.setColor(bgTime).fillRect(0,40,width,height-offset); time(); + queueDraw(); } //program start - g.clear(); // Clear the screen once, at startup if (g.theme.dark==true){ @@ -97,16 +55,8 @@ else { } draw(); // draw immediately at first -var secondInterval = setInterval(draw, 1000); // Stop updates when LCD is off, restart when on -Bangle.on('lcdPower',on=>{ - if (secondInterval) clearInterval(secondInterval); - secondInterval = undefined; - if (on) { - secondInterval = setInterval(draw, 1000); - draw(); // draw immediately - } -}); + // Show launcher when middle button pressed Bangle.setUI("clock"); diff --git a/apps/distortclk/metadata.json b/apps/distortclk/metadata.json index 0ede203b5..125dac590 100644 --- a/apps/distortclk/metadata.json +++ b/apps/distortclk/metadata.json @@ -2,7 +2,7 @@ "id": "distortclk", "name": "Distort Clock", "shortName":"Distort Clock", - "version": "0.01", + "version": "0.02", "description": "A clockface", "icon": "app.png", "type": "clock", diff --git a/apps/pokeclk/ChangeLog b/apps/pokeclk/ChangeLog index 8e506ce50..5838e596d 100644 --- a/apps/pokeclk/ChangeLog +++ b/apps/pokeclk/ChangeLog @@ -1,2 +1,3 @@ 0.01: New face :) 0.02: Color image compressed +0.03: Improved clock diff --git a/apps/pokeclk/app.js b/apps/pokeclk/app.js index 17a487bc0..7e495f7d2 100644 --- a/apps/pokeclk/app.js +++ b/apps/pokeclk/app.js @@ -5,7 +5,7 @@ const width = g.getWidth(); const height = g.getHeight(); const font = "Vector:12"; -const locale = require("locale"); +var drawTimeout; var img = { width : 176, height : 149, bpp : 4, @@ -20,34 +20,12 @@ var night= { buffer : (atob("ERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERERABEREREREREAEREREREREREREREREREREREREREREREREREREREREREREREQABERERERHwABEREREREREREREREREREREREREREREREREREREREREREREREQ/xERERER/wERERERERERERERERERERERERERERERERERERERERERERERERH//xERERH//xERERERERERERERERERERERERERERERERERERERERERERERERH//xEREf/xERERERERERERERERERERERERERERERERERERERERERERERERERH///////ERERERERERERERERERERERERERERERERERERERERERERERERERER////////8RERERERERERERERERERERERERERERERERERERERERERERERERH/////////ERERERERERERERERERERERERERERERERERERERERERERERERER////D///DxERERERERERERERERERERERERERERERERERERERERERERERERH////w///w8RERERERERERERERERERERERERERERERERERERERER//ERERER//AA///w/w8REREREREREREREREREREREREREREREREREREREREf////EREf/wAP/wAA8PERERERERERERERERERERERERERERERERERERERERH////xERH/8AD/////DxERERERERERERERERERERERERERERERERERERERER////8REf//////////ERERERERERERERERERERERERERERERERERERERERERERH/8R/////////xERERERERERERERERERERERERERERERERERERERER////////Ef////////////////////////////////////////////////////////////////////////////////////////////////////////////8RERERH////////////xERERERERERERERERERERERERERERERERERERERERERERERH///////////EREREREREREREREREREREREREREREREREREREREREf/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////w==")) }; -var time= "10:20"; - -function time() { //numbers - // work out how to display the current time - const d = new Date(); - const h = d.getHours(), - m = d.getMinutes(); - const time = h + ":" + ("0" + m).substr(-2); - const day = Date.now(); - const mo = d.getMonth()+1; - const damo = d.getDate(); - - var dayMonth = mo+"-"+damo; - - // time - require("Font4x5").add(Graphics); - isDark(); - g.setFontAlign(0,0); - //g.setFont("6x8:4x5"); - g.setFont("4x5",7); - g.drawString(time, width/2, height/2); - // date - require("Font4x5").add(Graphics); - g.setFontAlign(1,1); - //g.setFont("4x6",2); - g.setFont("4x5",3); - g.drawString(dayMonth, width/2+60, height/2+40); - +function queueDraw() { + if (drawTimeout) clearTimeout(drawTimeout); + drawTimeout = setTimeout(function() { + drawTimeout = undefined; + draw(); + }, 60000 - (Date.now() % 60000)); } function isDark(){ @@ -59,6 +37,22 @@ function isDark(){ } } +function time() { + var d = new Date(); + var day = d.getDate(); + var time = require("locale").time(d,1); + var date = require("locale").date(d); + var mo = require("date_utils").month(d.getMonth()+1,1); + + require("Font4x5").add(Graphics); // time + isDark(); + g.setFontAlign(0,0); + g.setFont("4x5",7.5).drawString(time, width/2, height/2); + + g.setFontAlign(1,1); + g.setFont("4x5",3).drawString(mo+" "+day, width-15, height-35); +} + function draw() { //poketch background if (g.theme.dark==true){ g.drawImage(night, 0, 25, {scale:2}); //poketch is life @@ -67,20 +61,13 @@ function draw() { //poketch background g.drawImage(img, 0, 25); //poketch is life } time(); + queueDraw(); } //program start g.clear(); draw(); -var secondInterval = setInterval(draw, 1000); // Stop updates when LCD is off, restart when on -Bangle.on('lcdPower',on=>{ - if (secondInterval) clearInterval(secondInterval); - secondInterval = undefined; - if (on) { - secondInterval = setInterval(draw, 1000); - draw(); // draw immediately - } -}); + // Show launcher when middle button pressed Bangle.setUI("clock"); // Load widgets diff --git a/apps/pokeclk/metadata.json b/apps/pokeclk/metadata.json index 433077efe..c022868ec 100644 --- a/apps/pokeclk/metadata.json +++ b/apps/pokeclk/metadata.json @@ -2,7 +2,7 @@ "id": "pokeclk", "name": "Poketch Clock", "shortName":"Poketch Clock", - "version": "0.02", + "version": "0.03", "description": "A clock based on the Poketch electronic device found in Sinnoh", "icon": "app.png", "type": "clock",