Using Notification Center reminder to complete already complete recurrent task completes next instance
Steps to replicate:
1) Set up a task and a mobile notification reminder, i.e. "ev Wed" and "ev Wed @ 3pm"
2) Complete a task before the reminder's time, say by 2pm (see a separate bug submission for that at https://todoist.com/Support_Android/showQuestion/399)
3) When the reminder is displayed in the Notification Center at 3pm, expand the task information and press "Complete"
- Nothing happens as the given task for Wednesday, 10/02 has been marked complete already
- Next instance of the task is marked complete too. If we use the Notification Center "Complete" button to complete an already done 10/02 task, the next instance -- 10/09 -- will be marked as complete too.
Asked by Nick Karasev on Oct 02, 2013 - 21:33
We will consider changing this in future updates but it is a very useful menu to have. The issue is there is no real way for it to know that it has been completed, which is why it completes it again. I will let the developers know and they might be able to figure something out that will suggest it was "just" completed.
Please try to make sure to swipe the menu closed or similar instead of using the Complete button.
I do agree that the editing feature in the Notification Center is really cool!
As per how the reminder would know what if any associated instance to mark complete...
I don't know about the exact structure of Todoist tasks and reminders, but I would imagine every task instance to have fields like "status" (complete / not complete), due date (a simple date time or a pattern like "ev thu") and effective due date (i.e. for a recurrent task with due date of "ev thu" the instance's effective due date would be 10/03).
Likewise, a reminder can have its own "reminder date and time" that would be something like 10/03 3pm for the current instance.
Then it becomes a simple matter of comparison. The reminder in the Notification Center should only complete an associated task instance if its effective due date is less or equal to the reminder's own date and time. If the instance in question has an effective due date of 10/10 (because 10/03 was complete before the reminder fired), it should be left alone.