From 6fc6514caa591e2c30d4c84d9b97037060beba13 Mon Sep 17 00:00:00 2001 From: tibbi Date: Mon, 8 May 2017 22:00:49 +0200 Subject: [PATCH] pass the original event to addIntervalTime --- .../simplemobiletools/calendar/helpers/DBHelper.kt | 6 ++++-- .../com/simplemobiletools/calendar/models/Event.kt | 11 ++++------- 2 files changed, 8 insertions(+), 9 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 69fe0d890..734320b8f 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/helpers/DBHelper.kt @@ -397,6 +397,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont } private fun getEventsRepeatingTillDateOrForever(fromTS: Int, toTS: Int, startTimes: SparseIntArray, event: Event): ArrayList { + val original = event.copy() val events = ArrayList() while (event.startTS <= toTS && (event.repeatLimit == 0 || event.repeatLimit >= event.startTS)) { if (event.endTS >= fromTS) { @@ -410,12 +411,13 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont events.add(event.copy()) } } - event.addIntervalTime(context) + event.addIntervalTime(original) } return events } private fun getEventsRepeatingXTimes(fromTS: Int, toTS: Int, startTimes: SparseIntArray, event: Event): ArrayList { + val original = event.copy() val events = ArrayList() while (event.repeatLimit < 0 && event.startTS <= toTS) { if (event.repeatInterval.isXWeeklyRepetition()) { @@ -433,7 +435,7 @@ class DBHelper private constructor(val context: Context) : SQLiteOpenHelper(cont } event.repeatLimit++ } - event.addIntervalTime(context) + event.addIntervalTime(original) } return events } diff --git a/app/src/main/kotlin/com/simplemobiletools/calendar/models/Event.kt b/app/src/main/kotlin/com/simplemobiletools/calendar/models/Event.kt index 14fcad4e3..1f98cfdb4 100644 --- a/app/src/main/kotlin/com/simplemobiletools/calendar/models/Event.kt +++ b/app/src/main/kotlin/com/simplemobiletools/calendar/models/Event.kt @@ -1,7 +1,5 @@ package com.simplemobiletools.calendar.models -import android.content.Context -import com.simplemobiletools.calendar.extensions.dbHelper import com.simplemobiletools.calendar.extensions.seconds import com.simplemobiletools.calendar.helpers.* import com.simplemobiletools.calendar.helpers.Formatter @@ -18,7 +16,7 @@ data class Event(var id: Int = 0, var startTS: Int = 0, var endTS: Int = 0, var private val serialVersionUID = -32456795132345616L } - fun addIntervalTime(context: Context) { + fun addIntervalTime(original: Event) { val currStart = Formatter.getDateTimeFromTS(startTS) val newStart: DateTime newStart = when (repeatInterval) { @@ -30,7 +28,7 @@ data class Event(var id: Int = 0, var startTS: Int = 0, var endTS: Int = 0, var if (repeatRule == REPEAT_MONTH_SAME_DAY) { currStart.plusMonths(repeatInterval / MONTH) } else if (repeatRule == REPEAT_MONTH_EVERY_XTH_DAY) { - addXthDayInterval(currStart, context) + addXthDayInterval(currStart, original) } else { currStart.plusMonths(repeatInterval / MONTH).dayOfMonth().withMaximumValue() } @@ -48,7 +46,7 @@ data class Event(var id: Int = 0, var startTS: Int = 0, var endTS: Int = 0, var endTS = newEndTS } - private fun addXthDayInterval(currStart: DateTime, context: Context): DateTime { + private fun addXthDayInterval(currStart: DateTime, original: Event): DateTime { val day = currStart.dayOfWeek var order = (currStart.dayOfMonth - 1) / 7 val properMonth = currStart.withDayOfMonth(7).plusMonths(repeatInterval / MONTH).withDayOfWeek(day) @@ -58,8 +56,7 @@ data class Event(var id: Int = 0, var startTS: Int = 0, var endTS: Int = 0, var // check if it should be for example Fourth Monday, or Last Monday if (order == 3 || order == 4) { - val original = context.dbHelper.getEvent(id) - val originalDateTime = Formatter.getDateTimeFromTS(original!!.startTS) + val originalDateTime = Formatter.getDateTimeFromTS(original.startTS) val isLastWeekday = originalDateTime.monthOfYear != originalDateTime.plusDays(7).monthOfYear if (isLastWeekday) order = -1