From 80467c0ca5def946ca0ae79e7417a39028571e9e Mon Sep 17 00:00:00 2001 From: Sam Bosley Date: Wed, 17 Apr 2013 14:20:55 -0700 Subject: [PATCH] Handle end of month repeating tasks better --- .../astrid/repeats/RepeatTaskCompleteListener.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java b/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java index 926001786..c69be879e 100644 --- a/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java +++ b/astrid/plugin-src/com/todoroo/astrid/repeats/RepeatTaskCompleteListener.java @@ -156,8 +156,18 @@ public class RepeatTaskCompleteListener extends BroadcastReceiver { } private static long handleMonthlyRepeat(Date original, DateValue startDateAsDV, RRule rrule) { - // - return invokeRecurrence(rrule, original, startDateAsDV); + if (DateUtilities.isEndOfMonth(original)) { + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(original.getTime()); + + int interval = rrule.getInterval(); + + cal.add(Calendar.MONTH, interval); + cal.set(Calendar.DATE, cal.getActualMaximum(Calendar.DATE)); + return cal.getTimeInMillis(); + } else { + return invokeRecurrence(rrule, original, startDateAsDV); + } } private static Comparator weekdayCompare = new Comparator() {