First of all, Google Tasks not support recurring tasks now, so if you do not open your phone(no need to open the app) for two days, a daily recurring task will not update its due time in web Google Tasks. This is not good at all, recurring task is there simply because it is really useful and sync with Google is what people want.
Task repetition is “mark as uncompleted at some time”, but not “create a same task at different due at this is marked completed” as RTM. Because RTM has no ordering function like Google Tasks, and in case of Google Tasks, creating too many same task cause a problem: how do you order the tasks?
So with this implement, a task can only be marked as completed AFTER a specific time, which is the previous due time.
So it behave like this:
A repeat rule for task is set for recurring tasks, which include a start time and a rule, optionally end time.
All interaction with this task is the same as before.
When date change, phone boot, etc., check the following:
Compare the date now, insure that:
- The due time is at most the next due (yes, you cannot do things should be done tomorrow).
- if due time is older, and the task is completed, update the due time and mark it as completed, if has next due after now.
I think the above is something should be called timely-repeat, but I think there can be another kind of repetition,