From 1ce2e2e78d473cc6c07ebdc0991a2d2829a714c7 Mon Sep 17 00:00:00 2001 From: Ken Shirriff Date: Fri, 21 Aug 2009 14:21:59 -0700 Subject: [PATCH] Fix recurrence parsing for all-day events. The doozer server requires P1D instead of P86400S for all-day events. bug=1594638 --- core/java/android/pim/RecurrenceSet.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/java/android/pim/RecurrenceSet.java b/core/java/android/pim/RecurrenceSet.java index 7920543a59154..bd7924aa621d0 100644 --- a/core/java/android/pim/RecurrenceSet.java +++ b/core/java/android/pim/RecurrenceSet.java @@ -410,10 +410,14 @@ public static boolean populateComponent(ContentValues values, Time end = new Time(endTzid); end.parse(dtendProperty.getValue()); - long durationMillis = end.toMillis(false /* use isDst */) + long durationMillis = end.toMillis(false /* use isDst */) - start.toMillis(false /* use isDst */); long durationSeconds = (durationMillis / 1000); - return "P" + durationSeconds + "S"; + if (start.allDay && (durationSeconds % 86400) == 0) { + return "P" + (durationSeconds / 86400) + "D"; // Server wants this instead of P86400S + } else { + return "P" + durationSeconds + "S"; + } } private static String flattenProperties(ICalendar.Component component,