From a1ae5dffcb8a565142808f23bb98985c77b9b9e4 Mon Sep 17 00:00:00 2001 From: Tim Su Date: Sat, 14 Aug 2010 13:26:42 -0700 Subject: [PATCH] Fix for AST-243 - date inaccurate after repeating --- .../astrid/repeats/RepeatTaskCompleteListener.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java b/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java index f1934471e..4742a493a 100644 --- a/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java +++ b/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java @@ -124,10 +124,14 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver { if(nextDate instanceof DateTimeValueImpl) { DateTimeValueImpl newDateTime = (DateTimeValueImpl)nextDate; + Date date = new Date(Date.UTC(newDateTime.year() - 1900, newDateTime.month() - 1, + newDateTime.day(), newDateTime.hour(), + newDateTime.minute(), newDateTime.second())); + // time may be inaccurate due to DST, force time to be same + date.setHours(repeatFromDate.getHours()); + date.setMinutes(repeatFromDate.getMinutes()); newDueDate = task.createDueDate(Task.URGENCY_SPECIFIC_DAY_TIME, - Date.UTC(newDateTime.year() - 1900, newDateTime.month() - 1, - newDateTime.day(), newDateTime.hour(), - newDateTime.minute(), newDateTime.second())); + date.getTime()); } else { newDueDate = task.createDueDate(Task.URGENCY_SPECIFIC_DAY, new Date(nextDate.year() - 1900, nextDate.month() - 1,