diff --git a/apps/calclock/ChangeLog b/apps/calclock/ChangeLog index ec66c5568..faffda176 100644 --- a/apps/calclock/ChangeLog +++ b/apps/calclock/ChangeLog @@ -1 +1,2 @@ 0.01: Initial version +0.02: More compact rendering & app icon diff --git a/apps/calclock/README.md b/apps/calclock/README.md index d4b8fc9b6..2b4e93a0c 100644 --- a/apps/calclock/README.md +++ b/apps/calclock/README.md @@ -4,3 +4,6 @@ This clock shows a chronological view of your current and future events. It uses events synced from Gadgetbridge to achieve this. The current time and date is highlighted in cyan. + +## Screenshot +![](screenshot.png) diff --git a/apps/calclock/app.png b/apps/calclock/app.png deleted file mode 100644 index c850b0e5d..000000000 Binary files a/apps/calclock/app.png and /dev/null differ diff --git a/apps/calclock/calclock-icon.js b/apps/calclock/calclock-icon.js new file mode 100644 index 000000000..9d5514d80 --- /dev/null +++ b/apps/calclock/calclock-icon.js @@ -0,0 +1 @@ +require("heatshrink").decompress(atob("mEwwgpm5gAB4AVRhgWCAAQWWDCARC/4ACJR4uB54WDAAP8DBotFGIgXLFwv4GAouQC4gwMLooXF/gXJOowXGJBIXBCIgXQxgXLMAIXXMAmIC5OIx4XJhH/wAXIxnIC78IxGIHoIABI44MBC4wQBEQIDB5gXGPAJgEC6IxBC5oABC4wwDa4YTCxAWD5nPDAzvGFYgAB5AXWJBK+GcAq5CGBIuBC5X4GBIJBdoQXB/GIx4CDPJAuEC5JoCDAgWBFwYXJxCBIFwYXKYwoACCwZ3IPQoWIC5YABGYIABCwpHKAQYMBCwwX/C5QAMC8R3/R/4XNhAXNwAXHgGIABgWIAFwA==")) diff --git a/apps/calclock/app.js b/apps/calclock/calclock.js similarity index 74% rename from apps/calclock/app.js rename to apps/calclock/calclock.js index d25a8d309..202e3ac20 100644 --- a/apps/calclock/app.js +++ b/apps/calclock/calclock.js @@ -19,7 +19,7 @@ function zp(str) { return ("0"+str).substr(-2); } -function drawEvent(event, y) { +function drawEventHeader(event, y) { g.setFont("Vector", 24); var time = isActive(event) ? new Date() : new Date(event.timestamp * 1000); @@ -27,24 +27,41 @@ function drawEvent(event, y) { g.drawString(timeStr, 5, y); y += 24; - g.setFont("6x15", 1); + g.setFont("12x20", 1); if (isActive(event)) { - g.drawString(require("locale").date(time,1),15*timeStr.length,y-15); + g.drawString(zp(time.getDate())+". " + require("locale").month(time,1),15*timeStr.length,y-21); } else { var offset = 0-time.getTimezoneOffset()/1440; var days = Math.floor((time.getTime()/1000)/86400+offset)-Math.floor(getTime()/86400+offset); if(days > 0) { var daysStr = days===1?/*LANG*/"tomorrow":/*LANG*/"in "+days+/*LANG*/" days"; - g.drawString(daysStr,15*timeStr.length,y-15); + g.drawString(daysStr,15*timeStr.length,y-21); } } + return y; +} +function drawEventBody(event, y) { g.setFont("12x20", 1); var lines = g.wrapString(event.title, g.getWidth()-10); + if (lines.length > 2) { + lines = lines.slice(0,2); + lines[1] = lines[1].slice(0,-3)+"..."; + } g.drawString(lines.join('\n'), 5, y); - y += 20 * lines.length; - y += 5; + y+=20 * lines.length; + if(event.location) { + g.drawImage(atob("DBSBAA8D/H/nDuB+B+B+B3Dn/j/B+A8A8AYAYAYAAAAAAA=="),5,y); + g.drawString(event.location, 20, y); + y+=20; + } + y+=5; + return y; +} +function drawEvent(event, y) { + y = drawEventHeader(event, y); + y = drawEventBody(event, y); return y; } @@ -58,8 +75,9 @@ function drawCurrentEvents(y) { if(current.length === 0) { y = drawEvent({timestamp: getTime(), durationInSeconds: 100}, y); } else { + y = drawEventHeader(current[0], y); for (var e of current) { - y = drawEvent(e, y); + y = drawEventBody(e, y); } } curEventHeight = y - curEventHeight; @@ -67,7 +85,7 @@ function drawCurrentEvents(y) { } function drawFutureEvents(y) { - g.setColor("#fff"); + g.setColor(g.theme.fg); for (var e of next) { y = drawEvent(e, y); if(y>g.getHeight())break; @@ -92,15 +110,10 @@ function redraw() { } } -// ------------------ DEBUG ----------------- -// calendar[2].timestamp = getTime(); - -// Clear the screen once, at startup g.clear(); -// draw immediately at first fullRedraw(); var minuteInterval = setInterval(redraw, 60 * 1000); Bangle.loadWidgets(); Bangle.drawWidgets(); -Bangle.setUI("clock"); \ No newline at end of file +Bangle.setUI("clock"); diff --git a/apps/calclock/calclock.png b/apps/calclock/calclock.png new file mode 100644 index 000000000..5f953c1ee Binary files /dev/null and b/apps/calclock/calclock.png differ diff --git a/apps/calclock/location.png b/apps/calclock/location.png new file mode 100644 index 000000000..619e55775 Binary files /dev/null and b/apps/calclock/location.png differ diff --git a/apps/calclock/metadata.json b/apps/calclock/metadata.json index 1949f41d9..f87ee18be 100644 --- a/apps/calclock/metadata.json +++ b/apps/calclock/metadata.json @@ -2,14 +2,16 @@ "id": "calclock", "name": "Calendar Clock", "shortName": "CalClock", - "version": "0.01", + "version": "0.02", "description": "Show the current and upcoming events synchronized from Gadgetbridge", - "icon": "app.png", + "icon": "calclock.png", "type": "clock", "tags": "clock agenda", "supports": ["BANGLEJS2"], "readme": "README.md", "storage": [ - {"name":"calclock.app.js","url":"app.js"} - ] + {"name":"calclock.app.js","url":"calclock.js"}, + {"name":"calclock.img","url":"calclock-icon.js","evaluate":true} + ], + "screenshots": [{"url":"screenshot.png"}] } diff --git a/apps/calclock/screenshot.png b/apps/calclock/screenshot.png new file mode 100644 index 000000000..4ab503f2b Binary files /dev/null and b/apps/calclock/screenshot.png differ