From 8ba07285336c34a1fa454b23c9d4c95af020fa00 Mon Sep 17 00:00:00 2001 From: Marc Blank Date: Thu, 29 Apr 2010 09:41:02 -0700 Subject: [PATCH] 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 --- src/com/android/exchange/utility/CalendarUtilities.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/com/android/exchange/utility/CalendarUtilities.java b/src/com/android/exchange/utility/CalendarUtilities.java index 4051f1a93..6f38047c1 100644 --- a/src/com/android/exchange/utility/CalendarUtilities.java +++ b/src/com/android/exchange/utility/CalendarUtilities.java @@ -1416,8 +1416,11 @@ public class CalendarUtilities { // 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);