From 8f57caf8eda5d0e5d3c0892da49aa47c30dc1c9a Mon Sep 17 00:00:00 2001 From: Fabrice Di Meglio Date: Fri, 24 Sep 2010 09:18:25 -0700 Subject: [PATCH] Fix bug #2585298 (google calendar sync clears eventTimezone field for recurring allDay events) - force UTC timezone if recurrence is corresponding to an "allday" event Change-Id: I3603438c0ad8019051ed4a8bd39d4aa7c0401eb1 --- core/java/android/pim/RecurrenceSet.java | 4 +++- core/tests/coretests/src/android/pim/RecurrenceSetTest.java | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/core/java/android/pim/RecurrenceSet.java b/core/java/android/pim/RecurrenceSet.java index 635323e9fcb0b..f5e1bac4a8a3c 100644 --- a/core/java/android/pim/RecurrenceSet.java +++ b/core/java/android/pim/RecurrenceSet.java @@ -181,7 +181,9 @@ public class RecurrenceSet { boolean inUtc = start.parse(dtstart); boolean allDay = start.allDay; - if (inUtc) { + // We force TimeZone to UTC for "all day recurring events" as the server is sending no + // TimeZone in DTSTART for them + if (inUtc || allDay) { tzid = Time.TIMEZONE_UTC; } diff --git a/core/tests/coretests/src/android/pim/RecurrenceSetTest.java b/core/tests/coretests/src/android/pim/RecurrenceSetTest.java index 64cd6c426dce3..5d01ba0e0ee92 100644 --- a/core/tests/coretests/src/android/pim/RecurrenceSetTest.java +++ b/core/tests/coretests/src/android/pim/RecurrenceSetTest.java @@ -46,7 +46,7 @@ public class RecurrenceSetTest extends TestCase { String recurrence = "DTSTART;VALUE=DATE:20090821\nDTEND;VALUE=DATE:20090822\n" + "RRULE:FREQ=YEARLY;WKST=SU"; verifyPopulateContentValues(recurrence, "FREQ=YEARLY;WKST=SU", null, - null, null, 1250812800000L, null, "P1D", 1); + null, null, 1250812800000L, "UTC", "P1D", 1); } // Test 2 day all-day event @@ -55,7 +55,7 @@ public class RecurrenceSetTest extends TestCase { String recurrence = "DTSTART;VALUE=DATE:20090821\nDTEND;VALUE=DATE:20090823\n" + "RRULE:FREQ=YEARLY;WKST=SU"; verifyPopulateContentValues(recurrence, "FREQ=YEARLY;WKST=SU", null, - null, null, 1250812800000L, null, "P2D", 1); + null, null, 1250812800000L, "UTC", "P2D", 1); } // run populateContentValues and verify the results