diff --git a/apps.json b/apps.json index d44c0b051..29e7b7d3c 100644 --- a/apps.json +++ b/apps.json @@ -2138,18 +2138,19 @@ { "id": "multiclock", "name": "Multi Clock", "icon": "multiclock.png", - "version":"0.06", + "version":"0.07", "description": "Clock with multiple faces - Big, Analogue, Digital, Text.\n Switch between faces with BT1 & BTN3", "readme": "README.md", "tags": "clock", "type":"clock", "allow_emulator":false, "storage": [ - {"name":"multiclock.app.js","url":"clock.min.js"}, - {"name":"big.face.js","url":"big.min.js"}, - {"name":"ana.face.js","url":"ana.min.js"}, - {"name":"digi.face.js","url":"digi.min.js"}, - {"name":"txt.face.js","url":"txt.min.js"}, + {"name":"multiclock.app.js","url":"clock.js"}, + {"name":"big.face.js","url":"big.js"}, + {"name":"ana.face.js","url":"ana.js"}, + {"name":"digi.face.js","url":"digi.js"}, + {"name":"txt.face.js","url":"txt.js"}, + {"name":"timdat.face.js","url":"timdat.js"}, {"name":"multiclock.img","url":"multiclock-icon.js","evaluate":true} ] }, diff --git a/apps/multiclock/ChangeLog b/apps/multiclock/ChangeLog index 2f1d08cc0..7b553ae42 100644 --- a/apps/multiclock/ChangeLog +++ b/apps/multiclock/ChangeLog @@ -4,5 +4,7 @@ 0.04: Bug Fixes 0.05: Add README 0.06: Add txt clock +0.07: Add Time Date clock and fix font sizes + diff --git a/apps/multiclock/README.md b/apps/multiclock/README.md index 5bf6856e5..b1773b8df 100644 --- a/apps/multiclock/README.md +++ b/apps/multiclock/README.md @@ -14,6 +14,9 @@ This is a clock app that supports multiple clock faces. The user can switch betw ### Text Clock Face ![](txtface.jpg) +### Time and Date Clock Face + + ## Controls Clock faces are kept in a circular list. diff --git a/apps/multiclock/big.js b/apps/multiclock/big.js index 7580c2427..2e83d8fb5 100644 --- a/apps/multiclock/big.js +++ b/apps/multiclock/big.js @@ -10,9 +10,9 @@ minutes = time[1]; g.clearRect(0,24,239,239); g.setColor(1,1,1); - g.setFont("Vector",100); + g.setFont("Vector",132); g.drawString(hours,50,24,true); - g.drawString(minutes,50,135,true); + g.drawString(minutes,50,132,true); } function onSecond(){ diff --git a/apps/multiclock/big.min.js b/apps/multiclock/big.min.js deleted file mode 100644 index 97359511f..000000000 --- a/apps/multiclock/big.min.js +++ /dev/null @@ -1 +0,0 @@ -(function(){return function(){function c(a){g.reset();var b=a.toString().split(" ")[4].substr(0,5).split(":");a=b[0];b=b[1];g.clearRect(0,24,239,239);g.setColor(1,1,1);g.setFont("Vector",100);g.drawString(a,50,24,!0);g.drawString(b,50,135,!0)}return{init:function(){c(new Date)},tick:function(){var a=new Date;0===a.getSeconds()&&c(a)}}}})(); \ No newline at end of file diff --git a/apps/multiclock/clock.min.js b/apps/multiclock/clock.min.js deleted file mode 100644 index 1eec2b1f5..000000000 --- a/apps/multiclock/clock.min.js +++ /dev/null @@ -1,3 +0,0 @@ -var FACES=[],iface=0;require("Storage").list(/\.face\.js$/).forEach(function(a){return FACES.push(eval(require("Storage").read(a)))});var face=FACES[iface](),intervalRefSec;function stopdraw(){intervalRefSec&&(intervalRefSec=clearInterval(intervalRefSec))}function startdraw(){g.clear();g.reset();Bangle.drawWidgets();face.init();intervalRefSec=setInterval(face.tick,1E3)} -function setButtons(){function a(a){var b=FACES.length-1;iface+=a;iface=iface>b?0:0>iface?b:iface;stopdraw();face=FACES[iface]();startdraw()}setWatch(Bangle.showLauncher,BTN2,{repeat:!1,edge:"falling"});setWatch(a.bind(null,1),BTN1,{repeat:!0,edge:"rising"});setWatch(a.bind(null,-1),BTN3,{repeat:!0,edge:"rising"})}var SCREENACCESS={withApp:!0,request:function(){this.withApp=!1;stopdraw();clearWatch()},release:function(){this.withApp=!0;startdraw();setButtons()}}; -Bangle.on("lcdPower",function(a){SCREENACCESS.withApp&&(a?startdraw():stopdraw())});g.clear();Bangle.loadWidgets();startdraw();setButtons(); \ No newline at end of file diff --git a/apps/multiclock/digi.js b/apps/multiclock/digi.js index f4250bd31..4422e6b62 100644 --- a/apps/multiclock/digi.js +++ b/apps/multiclock/digi.js @@ -14,7 +14,7 @@ function getFace(){ var d = new Date(); var da = d.toString().split(" "); var time = da[4]; - buf.setFont("Vector",42); + buf.setFont("Vector",54); buf.setFontAlign(0,-1); buf.drawString(time,buf.getWidth()/2,0); buf.setFont("6x8",2); diff --git a/apps/multiclock/digi.min.js b/apps/multiclock/digi.min.js deleted file mode 100644 index 1bad4da9e..000000000 --- a/apps/multiclock/digi.min.js +++ /dev/null @@ -1 +0,0 @@ -(function(){return function(){function b(){a.clear();a.setColor(1);var c=new Date,b=c.toString().split(" ")[4];a.setFont("Vector",42);a.setFontAlign(0,-1);a.drawString(b,a.getWidth()/2,0);a.setFont("6x8",2);a.setFontAlign(0,-1);c=c.toString().substr(0,15);a.drawString(c,a.getWidth()/2,70);g.setColor(1,1,1);g.drawImage({width:a.getWidth(),height:a.getHeight(),buffer:a.buffer},0,85)}var a=Graphics.createArrayBuffer(240,92,1,{msb:!0});return{init:b,tick:b}}})(); \ No newline at end of file diff --git a/apps/multiclock/timdat.js b/apps/multiclock/timdat.js new file mode 100644 index 000000000..ff1bdf000 --- /dev/null +++ b/apps/multiclock/timdat.js @@ -0,0 +1,38 @@ +(() => { + function getFace(){ + + var lastmin=-1; + function drawClock(){ + var d=Date(); + if (d.getMinutes()==lastmin) return; + d=d.toString().split(' '); + var min=d[4].substr(3,2); + var sec=d[4].substr(-2); + var tm=d[4].substring(0,5); + var hr=d[4].substr(0,2); + lastmin=min; + g.reset(); + g.clearRect(0,24,239,239); + var w=g.getWidth(); + g.setColor(0xffff); + g.setFontVector(80); + g.drawString(tm,4+(w-g.stringWidth(tm))/2,64); + g.setFontVector(36); + g.setColor(0x07ff); + var dt=d[0]+" "+d[1]+" "+d[2];//+" "+d[3]; + g.drawString(dt,(w-g.stringWidth(dt))/2,160); + g.flip(); + } + + function drawFirst(){ + lastmin=-1; + drawClock(); + } + + return {init:drawFirst, tick:drawClock}; + } + + return getFace; + +})(); + diff --git a/apps/multiclock/txt.js b/apps/multiclock/txt.js index 805342bf7..130455176 100644 --- a/apps/multiclock/txt.js +++ b/apps/multiclock/txt.js @@ -16,7 +16,7 @@ g.clearRect(0,40,239,210); g.setColor(1,1,1); g.setFontAlign(0,0); - g.setFont("Vector",32); + g.setFont("Vector",44); var txt = convert(d.getHours()); g.drawString(txt.top,120,60); g.drawString(txt.bot,120,100); diff --git a/apps/multiclock/txt.min.js b/apps/multiclock/txt.min.js deleted file mode 100644 index 144c36d02..000000000 --- a/apps/multiclock/txt.min.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(){return function(){function a(b){function a(c){var a=" ;one;two;three;four;five;six;seven;eight;nine".split(";"),b="ten eleven twelve thirteen fourteen fifteen sixteen seventeen eighteen nineteen".split(" "),d=["twenty","thirty","forty","fifty"];return 10>c?{top:" ",bot:a[c]}:20>c?{top:" ",bot:b[c-10]}:60>c?{top:d[Math.floor(c/10)-2],bot:a[c%10]}:"error"}g.reset();g.clearRect(0,40,239,210);g.setColor(1,1,1);g.setFontAlign(0,0);g.setFont("Vector",32);var d=a(b.getHours());g.drawString(d.top, -120,60);g.drawString(d.bot,120,100);d=a(b.getMinutes());g.drawString(d.top,120,140);g.drawString(d.bot,120,180)}return{init:function(){a(new Date)},tick:function(){var b=new Date;0===b.getSeconds()&&a(b)}}}})(); \ No newline at end of file