Add TimeCal to the app library

Add TimeCal to the app library
master
Jordan Coulam 2021-11-24 10:43:38 +00:00
parent dabc22c2d7
commit 3738bde22a
4 changed files with 108 additions and 0 deletions

View File

@ -4430,5 +4430,18 @@
"data": [ "data": [
{"name":"app.json"} {"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}
]
} }
] ]

1
apps/timecal/app-icon.js Normal file
View File

@ -0,0 +1 @@
require("heatshrink").decompress(atob("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"))

BIN
apps/timecal/icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@ -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);