From 63d39f05e6fb1e1dd8757f8c523dbdedcc662865 Mon Sep 17 00:00:00 2001 From: tibbi Date: Sun, 7 May 2017 21:03:54 +0200 Subject: [PATCH] add a helper function for checking proper week at weekly repeating events --- .../calendar/helpers/DBHelper.kt | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt index 300621586..91979e0f9 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt @@ -402,11 +402,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont if (event.startTS >= fromTS) { if (event.repeatInterval % WEEK == 0) { if (event.startTS.isTsOnProperDay(event)) { - val initialWeekOfYear = Formatter.getDateTimeFromTS(startTimes[event.id]).weekOfWeekyear - val currentWeekOfYear = Formatter.getDateTimeFromTS(event.startTS).weekOfWeekyear - - // check if its the proper week, for events repeating by x weeks - if ((currentWeekOfYear - initialWeekOfYear) % (event.repeatInterval / WEEK) == 0) { + if (isOnProperWeek(event, startTimes)) { events.add(event.copy()) } } @@ -426,11 +422,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont while (event.repeatLimit < 0 && event.endTS < toTS) { if (event.repeatInterval != 0 && event.repeatInterval % WEEK == 0) { if (event.startTS.isTsOnProperDay(event)) { - val initialWeekOfYear = Formatter.getDateTimeFromTS(startTimes[event.id]).weekOfWeekyear - val currentWeekOfYear = Formatter.getDateTimeFromTS(event.startTS).weekOfWeekyear - - // check if its the proper week, for events repeating by x weeks - if ((currentWeekOfYear - initialWeekOfYear) % (event.repeatInterval / WEEK) == 0) { + if (isOnProperWeek(event, startTimes)) { if (event.startTS >= fromTS && event.startTS < toTS) { events.add(event.copy()) } @@ -449,6 +441,13 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont return events } + // check if its the proper week, for events repeating by x weeks + private fun isOnProperWeek(event: Event, startTimes: SparseIntArray): Boolean { + val initialWeekOfYear = Formatter.getDateTimeFromTS(startTimes[event.id]).weekOfWeekyear + val currentWeekOfYear = Formatter.getDateTimeFromTS(event.startTS).weekOfWeekyear + return (currentWeekOfYear - initialWeekOfYear) % (event.repeatInterval / WEEK) == 0 + } + fun getRunningEvents(): List { val events = ArrayList() val ts = (System.currentTimeMillis() / 1000).toInt()