Use timezone in exception ics files
* Exchange seems to require time zone information in ics files containing
event exceptions, although this is NOT the case for iCalendar, and appears
not to conform to VCALENDAR specifications
* This causes exceptions to be placed on the wrong date or perhaps even
ignored, depending on the circumstance
* This CL simply adds time zone information to all exception ics files
Bug: 2640878
Change-Id: Ibc614eb7a2c45e9e782b10be979d9892bbfc0029
diff --git a/src/com/android/exchange/utility/CalendarUtilities.java b/src/com/android/exchange/utility/CalendarUtilities.java
index 4051f1a..6f38047 100644
--- a/src/com/android/exchange/utility/CalendarUtilities.java
+++ b/src/com/android/exchange/utility/CalendarUtilities.java
@@ -1416,8 +1416,11 @@
// If we're inviting people and the meeting is recurring, we need to send our time zone
// information and make sure to send DTSTART/DTEND in local time (unless, of course,
- // this is an all-day event)
- if (!isReply && entityValues.containsKey(Events.RRULE) && !allDayEvent) {
+ // this is an all-day event). Recurring, for this purpose, includes exceptions to
+ // recurring events
+ if (!isReply && !allDayEvent &&
+ (entityValues.containsKey(Events.RRULE) ||
+ entityValues.containsKey(Events.ORIGINAL_EVENT))) {
vCalendarTimeZone = TimeZone.getDefault();
// Write the VTIMEZONE block to the writer
timeZoneToVTimezone(vCalendarTimeZone, ics);