Bugs with Priority:<None>
I ran into these bugs and ended up with a lot of confusion and spent about 1 hour trying to figure out what happened, as my tasks did not appear where they should have been when I was using two devices to sync back and forth (through the built-in ToodleDo sync). One device is a Nexus 4 with UTL 2.0.3, the other is a Nexus 7 (2013) with UTL 1.8.2.
I ran into the bug when I, being completely unaware at the time that <None> is not valid for ToodleDo, changed the priority of some ~30 tasks by:
- Hit Multi-Select and select one or more tasks, then press Change Priority and select <None>
Afterwards, I spent the better part of 1.5 hours trying to figure out what happened with my data and investigate the robustness of ToodleDo around sync. (Side note: I test non-mobile software for a living, but have mostly happily trusted UTL (and ToodleDo) to do the "right thing" without any explicit testing). So far it seems my data is intact, but I found some interesting things based on my testing.
It seems most ways of getting a task with priority of <None> do not work. Above was the only method (Multi-Select) I found that worked.
These methods of trying to get a task with a priority of <None> do not work (which is good):
- If trying to do it from Edit a task or New Task screen, get error: "Toodledo requires a priority to be chosen". This triggers even if the Task when loaded for Editing already has the Priority set to None (due to the bug)
- If long pressing on single task to Change Priority, get error: "Toodledo requires a priority to be chosen"
If a task with Priority <None> is synced, and I compare the result of the sync by syncing on another device:
- if the task already existed on the server, then at least the change in the task name is synced, but the priority of <None> is silently not synced. Hence the task stays at its old priority.
- if a new task is created on the device and is syncing for the first time, then this task has its priority silently bumped to Low on the server
At this point, the device is out of sync with the server, the affected tasks priority on the device are not consistent with (at least the) priority of the affected tasks on the server.
The second sync seems to fix the inconsistencies, and take the values from the server, which is good.
So, there are at least two bugs:
1. Multi-select does not reject changing the priority to None for ToodleDo tasks
2. Sync silently uploads partial changes in the task and does not warn the user of the partial sync
I understand #2 might be hard to fix, as there may be no logging and a viewing mechanism in the App where a list of tasks from a partial sync would show up... but at least some warning instead of "Sync successful" would have been helpful. Also, if a warning does appear, the following would help a lot in potentially missing the warning:
- a sound effect
- the warning message lingering on the screen for some time before disappearing like the current Sync messages.
Of course, ideally the warning would appear persistently somewhere... so that even if the user hits Sync and then leaves the device unattended (and hence missing the warning message that flashes), they would be aware that something went wrong.
By the way, keep up the great work on the UTL apps. I have purchased and used them both (mostly the smartphone) for almost a couple of years, and they are the best for my purposes from the apps I tried. :-)
We will fix this issue in the next release.