diff --git a/apps.json b/apps.json index 4347c1600..63dab2467 100644 --- a/apps.json +++ b/apps.json @@ -5094,6 +5094,24 @@ {"name":"ltherm.img","url":"icon.js","evaluate":true} ] }, + { + "id": "supf", + "name": "Simple Clock with Date", + "shortName": "supf Clock", + "version": "0.01", + "description": "Simple Clock with seconds and date in custom language. Install 'Languages' to get localized names.", + "icon": "icon.png", + "screenshots": [{"url":"screenshot_supf.png"}], + "type": "clock", + "tags": "clock", + "supports": ["BANGLEJS2"], + "allow_emulator": true, + "readme": "README.md", + "storage": [ + {"name":"supf.app.js","url":"app.js"}, + {"name":"supf.img","url":"icon.js","evaluate":true} + ] + }, { "id": "andark", "name": "Analog Dark", "shortName":"AnDark", diff --git a/apps/supf/ChangeLog b/apps/supf/ChangeLog new file mode 100644 index 000000000..55ebb3e4b --- /dev/null +++ b/apps/supf/ChangeLog @@ -0,0 +1 @@ +0.01: New App diff --git a/apps/supf/README.md b/apps/supf/README.md new file mode 100644 index 000000000..258a69d4b --- /dev/null +++ b/apps/supf/README.md @@ -0,0 +1,4 @@ +# Simple Clock with Date +Simple Clock with seconds and date in custom language. Install 'Languages' to get localized names. + +![](screenshot_supf.png) diff --git a/apps/supf/app.js b/apps/supf/app.js new file mode 100644 index 000000000..d7a30aed9 --- /dev/null +++ b/apps/supf/app.js @@ -0,0 +1,56 @@ +require("Font7x11Numeric7Seg").add(Graphics); + +function draw() { + var d = new Date(); + var size = Math.floor(g.getWidth()/(7*6)); + var x = (g.getWidth()/2) - size*6, + y = (g.getHeight()/2) - size*7 - 0; + // y variable for ':' + var y_dop = 70 - 0; + g.reset().clearRect(0,y,g.getWidth(),y+size*28); + // draw hours in 24h format + g.setFont("7x11Numeric7Seg",size).setFontAlign(1,-1); + if (d.getHours().toString.length < 2) { + g.drawString('0'+d.getHours(), 58, y); + } + else { + g.drawString(d.getHours(), 58, y); + } + g.setFont("7x11Numeric7Seg",size/2).setFontAlign(1,-1); + g.drawString(":",64,y_dop); + g.setFont("7x11Numeric7Seg",size).setFontAlign(1,-1); + // draw minutes + g.drawString(("0"+d.getMinutes()).substr(-2),118,y); + g.setFont("7x11Numeric7Seg",size/2).setFontAlign(1,-1); + g.drawString(":",124,y_dop); + // draw seconds + g.setFont("7x11Numeric7Seg",size).setFontAlign(1,-1); + g.drawString(("0"+d.getSeconds()).substr(-2),178,y); + // date + g.setFont("6x8",size/2).setFontAlign(0,-1); + // draw name of day + g.drawString(require('locale').dow(new Date()),g.getWidth()/2, y + size*16); + // draw date and name of month + g.drawString(d.getDate()+' '+require('locale').month(new Date()),g.getWidth()/2, y + size*20); + // draw year + g.drawString((d.getFullYear()),g.getWidth()/2, y + size*24); + +} +// Only update when display turns on +if (process.env.BOARD!="SMAQ3") // hack for Q3 which is always-on +Bangle.on('lcdPower', function(on) { + if (secondInterval) + clearInterval(secondInterval); + secondInterval = undefined; + if (on) + secondInterval = setInterval(draw, 1000); + draw(); +}); + +g.clear(); +var secondInterval = setInterval(draw, 1000); +draw(); +// Show launcher when button pressed +Bangle.setUI("clock"); +Bangle.loadWidgets(); +Bangle.drawWidgets(); diff --git a/apps/supf/icon.js b/apps/supf/icon.js new file mode 100644 index 000000000..c06a65409 --- /dev/null +++ b/apps/supf/icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("ogA/AH4A/AElAdbgcEDq46FgEEQX5HGACZbBDjQeCDrocbAH4A/AH4A0gX/AAPzgEBAoX/BgIFDiEAn4FCkAdFgYXEDpQXBAocwDow4BHwIIDEAIdCHAIdDAQM/Dp4UBAQodxmYABDrK5DDrY7BmQdaPRAd4d6CPESo4ACDoQACDowXDHwMBDpI+Bn4jEAH4A/AH4A/AB9ADjcEogdbogA+K7oddWyywBDzQcHAH4A/AGAA=")) diff --git a/apps/supf/icon.png b/apps/supf/icon.png new file mode 100644 index 000000000..2ca4d6140 Binary files /dev/null and b/apps/supf/icon.png differ diff --git a/apps/supf/screenshot_supf.png b/apps/supf/screenshot_supf.png new file mode 100644 index 000000000..18e391f28 Binary files /dev/null and b/apps/supf/screenshot_supf.png differ