agenda: displaying calendar colour and name
parent
058c3d779e
commit
311d619e57
|
|
@ -2,3 +2,4 @@
|
||||||
0.02: Added settings page to force calendar sync
|
0.02: Added settings page to force calendar sync
|
||||||
0.03: Disable past events display from settings
|
0.03: Disable past events display from settings
|
||||||
0.04: Added awareness of allDay field
|
0.04: Added awareness of allDay field
|
||||||
|
0.05: Displaying calendar colour and name
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,20 @@
|
||||||
# Agenda
|
# 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,
|
title,
|
||||||
description,
|
description,
|
||||||
location,
|
location,
|
||||||
|
color:int,
|
||||||
|
calName,
|
||||||
allDay: bool,
|
allDay: bool,
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
@ -73,6 +75,8 @@ function showEvent(ev) {
|
||||||
lines = lines.concat(/*LANG*/"Location"+": ", g.wrapString(ev.location, g.getWidth()-10));
|
lines = lines.concat(/*LANG*/"Location"+": ", g.wrapString(ev.location, g.getWidth()-10));
|
||||||
if(ev.description)
|
if(ev.description)
|
||||||
lines = lines.concat("",g.wrapString(ev.description, g.getWidth()-10));
|
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"]);
|
lines = lines.concat(["",/*LANG*/"< Back"]);
|
||||||
E.showScroller({
|
E.showScroller({
|
||||||
h : g.getFontHeight(), // height of each menu item in pixels
|
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");
|
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(settings.pastEvents) isPast = ev.timestamp + ev.durationInSeconds < (new Date())/1000;
|
||||||
if (title) g.setFontAlign(-1,-1).setFont(fontBig)
|
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) {
|
if (body) {
|
||||||
g.setFontAlign(-1,-1).setFont(fontMedium).setColor(isPast ? "#888" : g.theme.fg);
|
g.setFontAlign(-1,-1).setFont(fontMedium).setColor(isPast ? "#888" : g.theme.fg);
|
||||||
var l = g.wrapString(body, r.w-(x+14));
|
g.drawString(body, x+10,r.y+20);
|
||||||
if (l.length>3) {
|
|
||||||
l = l.slice(0,3);
|
|
||||||
l[l.length-1]+="...";
|
|
||||||
}
|
|
||||||
g.drawString(l.join("\n"), 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
|
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]),
|
select : idx => showEvent(CALENDAR[idx]),
|
||||||
back : () => load()
|
back : () => load()
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"id": "agenda",
|
"id": "agenda",
|
||||||
"name": "Agenda",
|
"name": "Agenda",
|
||||||
"version": "0.04",
|
"version": "0.05",
|
||||||
"description": "Simple agenda",
|
"description": "Simple agenda",
|
||||||
"icon": "agenda.png",
|
"icon": "agenda.png",
|
||||||
"screenshots": [{"url":"screenshot_agenda_overview.png"}, {"url":"screenshot_agenda_event1.png"}, {"url":"screenshot_agenda_event2.png"}],
|
"screenshots": [{"url":"screenshot_agenda_overview.png"}, {"url":"screenshot_agenda_event1.png"}, {"url":"screenshot_agenda_event2.png"}],
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue