diff --git a/app/src/androidTest/java/com/todoroo/astrid/repeats/NewRepeatTests.kt b/app/src/androidTest/java/com/todoroo/astrid/repeats/NewRepeatTests.kt index 865e3a0e1..fa0817177 100644 --- a/app/src/androidTest/java/com/todoroo/astrid/repeats/NewRepeatTests.kt +++ b/app/src/androidTest/java/com/todoroo/astrid/repeats/NewRepeatTests.kt @@ -5,10 +5,16 @@ import com.google.ical.values.Frequency import com.google.ical.values.RRule import com.google.ical.values.Weekday import com.google.ical.values.WeekdayNum +import com.natpryce.makeiteasy.MakeItEasy.with import com.todoroo.astrid.data.Task import org.junit.Assert.assertEquals import org.junit.Test import org.junit.runner.RunWith +import org.tasks.makers.TaskMaker.AFTER_COMPLETE +import org.tasks.makers.TaskMaker.COMPLETION_TIME +import org.tasks.makers.TaskMaker.DUE_TIME +import org.tasks.makers.TaskMaker.RRULE +import org.tasks.makers.TaskMaker.newTask import org.tasks.time.DateTime import java.text.ParseException @@ -222,57 +228,45 @@ class NewRepeatTests { } private fun newFromDue(frequency: Frequency, interval: Int, dueDateTime: DateTime): Task { - return object : Task() { - init { - recurrence = getRecurrenceRule(frequency, interval, false) - dueDate = dueDateTime.millis - } - } + return newTask( + with(RRULE, getRecurrenceRule(frequency, interval)), + with(AFTER_COMPLETE, false), + with(DUE_TIME, dueDateTime)) } private fun newWeeklyFromDue(interval: Int, dueDateTime: DateTime, vararg weekdays: WeekdayNum): Task { - return object : Task() { - init { - recurrence = getRecurrenceRule(Frequency.WEEKLY, interval, false, *weekdays) - dueDate = dueDateTime.millis - } - } + return newTask( + with(RRULE, getRecurrenceRule(Frequency.WEEKLY, interval, *weekdays)), + with(AFTER_COMPLETE, false), + with(DUE_TIME, dueDateTime)) } private fun newFromCompleted( frequency: Frequency, interval: Int, dueDateTime: DateTime, completionDate: DateTime): Task { - return object : Task() { - init { - recurrence = getRecurrenceRule(frequency, interval, true) - dueDate = dueDateTime.millis - this.completionDate = completionDate.millis - } - } + return newTask( + with(RRULE, getRecurrenceRule(frequency, interval)), + with(AFTER_COMPLETE, true), + with(DUE_TIME, dueDateTime), + with(COMPLETION_TIME, completionDate)) } private fun newWeeklyFromCompleted( interval: Int, dueDateTime: DateTime, completionDate: DateTime, vararg weekdays: WeekdayNum): Task { - return object : Task() { - init { - recurrence = getRecurrenceRule(Frequency.WEEKLY, interval, true, *weekdays) - dueDate = dueDateTime.millis - this.completionDate = completionDate.millis - } - } + return newTask( + with(RRULE, getRecurrenceRule(Frequency.WEEKLY, interval, *weekdays)), + with(AFTER_COMPLETE, true), + with(DUE_TIME, dueDateTime), + with(COMPLETION_TIME, completionDate)) } private fun getRecurrenceRule( - frequency: Frequency, interval: Int, fromCompletion: Boolean, vararg weekdays: WeekdayNum): String { + frequency: Frequency, interval: Int, vararg weekdays: WeekdayNum): RRule { val rrule = RRule() rrule.freq = frequency rrule.interval = interval if (weekdays.isNotEmpty()) { rrule.byDay = listOf(*weekdays) } - var result = rrule.toIcal() - if (fromCompletion) { - result += ";FROM=COMPLETION" - } - return result + return rrule } } \ No newline at end of file diff --git a/app/src/main/java/com/todoroo/astrid/data/Task.kt b/app/src/main/java/com/todoroo/astrid/data/Task.kt index 1d258e337..a517e3c04 100644 --- a/app/src/main/java/com/todoroo/astrid/data/Task.kt +++ b/app/src/main/java/com/todoroo/astrid/data/Task.kt @@ -24,7 +24,7 @@ import java.util.* indices = [ Index(name = "t_rid", value = ["remoteId"], unique = true), Index(name = "active_and_visible", value = ["completed", "deleted", "hideUntil"])]) -open class Task : Parcelable { +class Task : Parcelable { /** ID */ @PrimaryKey(autoGenerate = true) @ColumnInfo(name = "_id")