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 5a67dcd81..2b19ede65 100644 --- a/app/src/main/java/com/todoroo/astrid/data/Task.kt +++ b/app/src/main/java/com/todoroo/astrid/data/Task.kt @@ -565,7 +565,7 @@ class Task : Parcelable { const val TRANS_REMINDERS = "reminders" const val TRANS_RANDOM = "random" - private val INVALID_COUNT = ";?COUNT=-1".toRegex() + private val INVALID_COUNT = ";?COUNT=(-1|0)".toRegex() /** * Creates due date for this task. If this due date has no time associated, we move it to the last diff --git a/app/src/main/java/org/tasks/repeats/CustomRecurrenceDialog.java b/app/src/main/java/org/tasks/repeats/CustomRecurrenceDialog.java index f02d1a748..8d1fa61b0 100644 --- a/app/src/main/java/org/tasks/repeats/CustomRecurrenceDialog.java +++ b/app/src/main/java/org/tasks/repeats/CustomRecurrenceDialog.java @@ -463,7 +463,6 @@ public class CustomRecurrenceDialog extends DialogFragment { } if (position == 0) { rrule.setUntil(null); - rrule.setCount(0); updateRepeatUntilOptions(); } else if (position == 1) { repeatUntilClick(); diff --git a/app/src/test/java/org/tasks/repeats/RecurrenceUtilsTest.kt b/app/src/test/java/org/tasks/repeats/RecurrenceUtilsTest.kt new file mode 100644 index 000000000..5c625417b --- /dev/null +++ b/app/src/test/java/org/tasks/repeats/RecurrenceUtilsTest.kt @@ -0,0 +1,22 @@ +package org.tasks.repeats + +import junit.framework.TestCase.assertEquals +import org.junit.Test + +class RecurrenceUtilsTest { + @Test + fun shouldRemoveZeroCount() { + assertEquals( + "FREQ=WEEKLY;INTERVAL=1;BYDAY=FR", + RecurrenceUtils.newRecur("FREQ=WEEKLY;COUNT=0;INTERVAL=1;BYDAY=FR").toString() + ) + } + + @Test + fun shouldRemoveNegativeCount() { + assertEquals( + "FREQ=WEEKLY;INTERVAL=1;BYDAY=FR", + RecurrenceUtils.newRecur("FREQ=WEEKLY;COUNT=-1;INTERVAL=1;BYDAY=FR").toString() + ) + } +} \ No newline at end of file