mirror of https://github.com/espruino/BangleApps
agenda: displaying calendar colour and name
parent
058c3d779e
commit
311d619e57
|
@ -2,3 +2,4 @@
|
|||
0.02: Added settings page to force calendar sync
|
||||
0.03: Disable past events display from settings
|
||||
0.04: Added awareness of allDay field
|
||||
0.05: Displaying calendar colour and name
|
||||
|
|
|
@ -1,3 +1,20 @@
|
|||
# Agenda
|
||||
|
||||
Basic agenda reading the events synchronised from GadgetBridge
|
||||
Basic agenda reading the events synchronised from GadgetBridge.
|
||||
|
||||
### Functionalities
|
||||
|
||||
* List all events in the next week (or whatever is synchronized)
|
||||
* Optionally view past events (until GB removes them)
|
||||
* Show start time and location of the events in the list
|
||||
* Show the colour of the calendar in the list
|
||||
* Display description, location and calendar name after tapping on events
|
||||
|
||||
### Report a bug
|
||||
|
||||
You can easily open an issue in the espruino repo, but I won't be notified and it might take time.
|
||||
If you want a (hopefully) quicker response, just report [on my fork](https://github.com/glemco/BangleApps).
|
||||
|
||||
### Known Problems
|
||||
|
||||
Any all-day event lasts just one day: that is a GB limitation that we will likely fix in the future.
|
||||
|
|
|
@ -6,6 +6,8 @@
|
|||
title,
|
||||
description,
|
||||
location,
|
||||
color:int,
|
||||
calName,
|
||||
allDay: bool,
|
||||
}
|
||||
*/
|
||||
|
@ -73,6 +75,8 @@ function showEvent(ev) {
|
|||
lines = lines.concat(/*LANG*/"Location"+": ", g.wrapString(ev.location, g.getWidth()-10));
|
||||
if(ev.description)
|
||||
lines = lines.concat("",g.wrapString(ev.description, g.getWidth()-10));
|
||||
if(ev.calName)
|
||||
lines = lines.concat(/*LANG*/"Calendar"+": ", g.wrapString(ev.calName, g.getWidth()-10));
|
||||
lines = lines.concat(["",/*LANG*/"< Back"]);
|
||||
E.showScroller({
|
||||
h : g.getFontHeight(), // height of each menu item in pixels
|
||||
|
@ -116,17 +120,16 @@ function showList() {
|
|||
var body = formatDateShort(getDate(ev.timestamp),ev.allDay)+"\n"+(ev.location?ev.location:/*LANG*/"No location");
|
||||
if(settings.pastEvents) isPast = ev.timestamp + ev.durationInSeconds < (new Date())/1000;
|
||||
if (title) g.setFontAlign(-1,-1).setFont(fontBig)
|
||||
.setColor(isPast ? "#888" : g.theme.fg).drawString(title, x,r.y+2);
|
||||
.setColor(isPast ? "#888" : g.theme.fg).drawString(title, x+4,r.y+2);
|
||||
if (body) {
|
||||
g.setFontAlign(-1,-1).setFont(fontMedium).setColor(isPast ? "#888" : g.theme.fg);
|
||||
var l = g.wrapString(body, r.w-(x+14));
|
||||
if (l.length>3) {
|
||||
l = l.slice(0,3);
|
||||
l[l.length-1]+="...";
|
||||
}
|
||||
g.drawString(l.join("\n"), x+10,r.y+20);
|
||||
g.drawString(body, x+10,r.y+20);
|
||||
}
|
||||
g.setColor("#888").fillRect(r.x,r.y+r.h-1,r.x+r.w-1,r.y+r.h-1); // dividing line between items
|
||||
if(ev.color) {
|
||||
g.setColor("#"+(0x1000000+Number(ev.color)).toString(16).padStart(6,"0"));
|
||||
g.fillRect(r.x,r.y+4,r.x+3, r.y+r.h-4);
|
||||
}
|
||||
},
|
||||
select : idx => showEvent(CALENDAR[idx]),
|
||||
back : () => load()
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"id": "agenda",
|
||||
"name": "Agenda",
|
||||
"version": "0.04",
|
||||
"version": "0.05",
|
||||
"description": "Simple agenda",
|
||||
"icon": "agenda.png",
|
||||
"screenshots": [{"url":"screenshot_agenda_overview.png"}, {"url":"screenshot_agenda_event1.png"}, {"url":"screenshot_agenda_event2.png"}],
|
||||
|
|
Loading…
Reference in New Issue