From b156fae9ff139541dc66010a3cc3d3e17d3cd68f Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 3 Dec 2018 16:42:32 +0100 Subject: [PATCH] fix repetition by x weeks not handling year switches correctly --- .../com/simplemobiletools/calendar/pro/models/Event.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/models/Event.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/models/Event.kt index b5158ff2d..f814534f3 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/pro/models/Event.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/pro/models/Event.kt @@ -138,10 +138,11 @@ data class Event( fun getCalDAVCalendarId() = if (source.startsWith(CALDAV)) (source.split("-").lastOrNull() ?: "0").toString().toInt() else 0 // check if its the proper week, for events repeating every x weeks + // get the week number since 1970, not just in the current year fun isOnProperWeek(startTimes: LongSparseArray): Boolean { - val initialWeekOfYear = Formatter.getDateTimeFromTS(startTimes[id!!]!!).weekOfWeekyear - val currentWeekOfYear = Formatter.getDateTimeFromTS(startTS).weekOfWeekyear - return (currentWeekOfYear - initialWeekOfYear) % (repeatInterval / WEEK) == 0 + val initialWeekNumber = Formatter.getDateTimeFromTS(startTimes[id!!]!!).millis / (7 * 24 * 60 * 60 * 1000) + val currentWeekNumber = Formatter.getDateTimeFromTS(startTS).millis / (7 * 24 * 60 * 60 * 1000) + return (initialWeekNumber - currentWeekNumber) % (repeatInterval / WEEK) == 0L } fun updateIsPastEvent() {