From 3738bde22a0d4cef2bd5c956a1a370e9a145689a Mon Sep 17 00:00:00 2001 From: Jordan Coulam Date: Wed, 24 Nov 2021 10:43:38 +0000 Subject: [PATCH 1/3] Add TimeCal to the app library Add TimeCal to the app library --- apps.json | 13 +++++ apps/timecal/app-icon.js | 1 + apps/timecal/icon.png | Bin 0 -> 3833 bytes apps/timecal/timecal.app.js | 94 ++++++++++++++++++++++++++++++++++++ 4 files changed, 108 insertions(+) create mode 100644 apps/timecal/app-icon.js create mode 100644 apps/timecal/icon.png create mode 100644 apps/timecal/timecal.app.js diff --git a/apps.json b/apps.json index 43def8d2c..0b474094b 100644 --- a/apps.json +++ b/apps.json @@ -4430,5 +4430,18 @@ "data": [ {"name":"app.json"} ] + }, + { "id": "timecal", + "name": "TimeCal", + "shortName":"TimeCal", + "icon": "icon.png", + "version":"0.01", + "description": "TimeCal shows the Time along with a 3 week calendar", + "tags": "clock", + "type": "clock", + "storage": [ + {"name":"timecal.app.js","url":"timecal.app.js"}, + {"name":"timecal.img","url":"app-icon.js","evaluate":true} + ] } ] diff --git a/apps/timecal/app-icon.js b/apps/timecal/app-icon.js new file mode 100644 index 000000000..900e8e3be --- /dev/null +++ b/apps/timecal/app-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("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")) \ No newline at end of file diff --git a/apps/timecal/icon.png b/apps/timecal/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ca57bf416b376cc636af982a161179ec416fb9f5 GIT binary patch literal 3833 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 literal 0 HcmV?d00001 diff --git a/apps/timecal/timecal.app.js b/apps/timecal/timecal.app.js new file mode 100644 index 000000000..b28326c46 --- /dev/null +++ b/apps/timecal/timecal.app.js @@ -0,0 +1,94 @@ +var center = g.getWidth() / 2; +var lastDayDraw; +var lastTimeDraw; + +var fontColor = g.theme.fg; +var accentColor = "#FF0000"; +var locale = require("locale"); + +function loop() { + var d = new Date(); + var cleared = false; + if(lastDayDraw != d.getDate()){ + lastDayDraw = d.getDate(); + drawDate(d); + drawCal(d); + } + + if(lastTimeDraw != d.getMinutes() || cleared){ + lastTimeDraw = d.getMinutes(); + drawTime(d); + } +} +function drawTime(d){ + var hour = ("0" + d.getHours()).slice(-2); + var min = ("0" + d.getMinutes()).slice(-2); + g.setFontAlign(0,-1,0); + g.setFont("Vector",40); + g.setColor(fontColor); + g.clearRect(0,50,g.getWidth(),90); + g.drawString(hour + ":" + min,center,50); +} +function drawDate(d){ + var day = ("0" + d.getDate()).slice(-2); + var month = ("0" + d.getMonth()).slice(-2); + var dateStr = locale.date(d,1); + g.clearRect(0,24,g.getWidth(),44); + g.setFont("Vector",20); + g.setColor(fontColor); + g.setFontAlign(0,-1,0); + g.drawString(dateStr,center,24); +} + +function drawCal(d){ + var calStart = 101; + var cellSize = g.getWidth() / 7; + var halfSize = cellSize / 2; + g.clearRect(0,calStart,g.getWidth(),g.getHeight()); + g.drawLine(0,calStart,g.getWidth(),calStart); + var days = ["Mo","Tu","We","Th","Fr","Sa","Su"]; + g.setFont("Vector",10); + g.setColor(fontColor); + g.setFontAlign(-1,-1,0); + for(var i = 0; i < days.length;i++){ + g.drawString(days[i],i*cellSize+5,calStart -11); + if(i!=0){ + g.drawLine(i*cellSize,calStart,i*cellSize,g.getHeight()); + } + } + var cellHeight = (g.getHeight() -calStart ) / 3; + for(var i = 0;i < 3;i++){ + var starty = calStart + i * cellHeight; + g.drawLine(0,starty,g.getWidth(),starty); + } + + g.setFont("Vector",15); + + var dayOfWeek = d.getDay(); + var dayRem = d.getDay() - 1; + if(dayRem <0){ + dayRem = 0; + } + + var start = new Date(); + start.setDate(start.getDate()-(7+dayRem)); + g.setFontAlign(0,-1,0); + for (var y = 0;y < 3; y++){ + for(var x = 0;x < 7; x++){ + if(start.getDate() === d.getDate()){ + g.setColor(accentColor); + }else{ + g.setColor(fontColor); + } + g.drawString(start.getDate(),x*cellSize +(cellSize / 2) + 2,calStart+(cellHeight*y) + 5); + start.setDate(start.getDate()+1); + } + } +} + +g.clear(); +Bangle.setUI("clock"); +Bangle.loadWidgets(); +Bangle.drawWidgets(); +loop(); +setInterval(loop,1000); \ No newline at end of file From 1a9f5375557fc232acfe3f42d1198da827db5ab8 Mon Sep 17 00:00:00 2001 From: Jordan Coulam Date: Wed, 24 Nov 2021 10:46:03 +0000 Subject: [PATCH 2/3] Add missing supports tag for TimeCal --- apps.json | 1 + 1 file changed, 1 insertion(+) diff --git a/apps.json b/apps.json index 0b474094b..c560a9f1f 100644 --- a/apps.json +++ b/apps.json @@ -4439,6 +4439,7 @@ "description": "TimeCal shows the Time along with a 3 week calendar", "tags": "clock", "type": "clock", + "supports":["BANGLEJS2"], "storage": [ {"name":"timecal.app.js","url":"timecal.app.js"}, {"name":"timecal.img","url":"app-icon.js","evaluate":true} From f3cb7e9a0b8f0ba3624b639415c9168c240905e8 Mon Sep 17 00:00:00 2001 From: Jordan Coulam Date: Wed, 24 Nov 2021 10:53:14 +0000 Subject: [PATCH 3/3] Remove Icon as it renders massive --- apps.json | 3 +-- apps/timecal/app-icon.js | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) delete mode 100644 apps/timecal/app-icon.js diff --git a/apps.json b/apps.json index c560a9f1f..2580b2d0c 100644 --- a/apps.json +++ b/apps.json @@ -4441,8 +4441,7 @@ "type": "clock", "supports":["BANGLEJS2"], "storage": [ - {"name":"timecal.app.js","url":"timecal.app.js"}, - {"name":"timecal.img","url":"app-icon.js","evaluate":true} + {"name":"timecal.app.js","url":"timecal.app.js"} ] } ] diff --git a/apps/timecal/app-icon.js b/apps/timecal/app-icon.js deleted file mode 100644 index 900e8e3be..000000000 --- a/apps/timecal/app-icon.js +++ /dev/null @@ -1 +0,0 @@ -require("heatshrink").decompress(atob("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")) \ No newline at end of file