Focus list sorting is reversed between Linux and Android

Cheers Andrei!

One of the reasons I chose Everdo after purchasing and using your closest competitor was the alphanumeric sorting of the Focus list. While it may seem like an obvious thing, there was no consistent sorting in the competitor. Consistent sorting allowed the implementation of a GTD compatible habit management system. When one tracks more than a screenful of repeating habits, it becomes more user friendly to have the earlier in the day habits appear at the top and later at the bottom.

Examples of the repeating tasks in habit management system
Daily:
Morning: 100-Drink water, 110-walk dog, 120-Run trail course etc.
Anytime: 200-Read technical journals, 210-Check garden etc.
Evening: 400-Workout, 410-meditate, etc.
Weekly: 300-Review GTD tasks, 310:swap backups to secure location etc.

Everdo’s consistent alphanumeric sorting allows adding prefixes to repeating tasks so that when they spawn into the Focus list, they sort in the order you want. As you go through your day you will tend to tick off the tasks that chronologically come first, which tend to be at the top of the list and easily visible especially on phone.

The Focus list sorting is reversed between Linux and Android implementations. Linux sorts alphanumerically, Android does the reverse. In this use case, Android is probably the more important case as people ticking off daily habits are more likely to do this on their phone. But, there are many daily desktop tasks as well.

So one has to chose whether Linux or Android is backward when setting up daily habits. Android is probably more annoying as scrolling to the bottom on a phone is worse than on a larger screen Linux based machine.

Importance: Medium. GTD and habit management go together. Users often begrudgingly use 2 apps for these functions. While Everdo doesn’t allow all the features of a full-fledged habit management system, simply allowing workable daily repeating tasks covers perhaps 70% of the value of a habit management system. This allows capture of some of the user revenue that might have gone to a habit management app purchase to flow to Everdo. Not having consistent sorting pushes users to look elsewhere for cross platform solutions.

When implementing a non-trivial daily habit management system (more than perhaps a single screen (~8 tasks) focus list will require often annoyingly long habitual scrolling to get to the tasks done first when those tasks are not at the top of the list. Enabling non-trivial habit management is a key competitive differentiator vs. Everdo’s closest competitor.

Using the workaround of assigning tags to AM, Anytime and PM tasks adds the layer of the user having to select those filters (which hides other non-habit related tasks in the Focus list) rather than just seeing the most chronologically relevant at the top.

From a product perspective, it lowers the level of consumer confidence in the robustness of Everdo a medium amount. People will almost always notice this.

Urgency: Medium. It’s a daily source of annoyance

Recommendation: Put this at the near the top of the bug list triage. The fix to reverse the Android sorting likely requires very little effort and won’t likely require much testing to verify.

My testing environment:
LG Journey L322DL on Android 10 with both 16GB and 32GB versions of phone
Samsung Galaxy A11 on Android 11
Lenovo X61 with Linux Mint 20.3 v5.2.7
MacBook Pro 2009 15.4" with Linux Mint 20.3 v5.2.7

Thank you for reporting, I will create a ticket to look into this for the next release of the Android app.

Thank you.

There is more context over the last few day.

  1. I have the X61 (Linux) setup as server with Samsung A11 (Android) and MacBook (Linux) as clients. I created 2 “Waiting” tasks on the Macbook and they wouldn’t sync to the server. Dragging the items into their project (despite Project being already assigned on creation) got the items to sync. After this, the A11 Focus list sorting started becoming AlphaNumeric.
  2. The MacBook pro had a hard crash. After reboot and starting Everdo, the A11 list became reverse asphanumerically sorted again
  3. The A11 then started booting and immediately failing. I’ve sent the logs via Google’s system if that gets to you. As of now the A11 Everdo app will never successfully start.
  4. Using the LG Journey (Android) Everdo app is fine and the alphanumeric sorting is currently correct.

These all seem so unrelated, and yet they are the only things that have changed in the Everdo system other than routine task management. No network, sync, updates or any other infrastructure-type changes have been made over this period.

The Android sorting has switched from alphanumeric to the reverse several times over the week based on no trigger that I have discerned. The sorting stays stable for hours to days then reverses. This happens across the 3 Android devices. The sorting of all 3 seems to switch in unison. A reverse sort seems to hang on while a phone is offline and will only switch to a regular sort when there is a server connection. Same for reversing the sort order.

Issue: Android not usable, Linux messed up.

Details:

  1. Added a 13th project on Android 11 client.
  2. The project was marked Someday. First time I’ve used Someday in creating a project.
  3. Created a single task in said project
  4. Go to Next view
  5. 100% repeatable crash even after killing Everdo and starting as well as rebooting phone and starting Everdo
  6. Syncing, adding tasks, going elsewhere in Android are fine. Only Next triggers the crash
  7. After this happened I allowed an Android 10 device to sync with the server. No Next crash

Linux dynamic reverse sorting:
As mentioned in this link, consistent alphanumeric sorting is key to using habits in Everdo.

Linux has always been fine, but after the Next issue (Above) in Android, now the Linux alphanumeric sort is reversed for the first time ever on the server (Linux). A client (Linux) now also has the sorting reversed. The wonky Android sorting which has reversed itself at seemingly random intervals is currently reversed.

Environments:
Server: Linux Mint 20.3, Everdo 1.7.7
Laptop Client: Linux Mint 20.3, Everdo 1.7.7
Phone client: Android 11, Everdo 1.6-7
Phone Client: Android 10, Everdo 1.6-7

I archived a bunch of tasks on the reversed sorting Linux server and the sorting reverted to normal alphanumeric. Could there be a corrupted task somewhere? Most of the tasks archived are spawned daily, to a corrupted tasks that daily spawns corrupted tasks might explain the strange intermittency of this issue.

I’m looking into this right now, will try to provide an update as soon as possible.

Edit: I was able to find the root cause of the reverse order of repeated actions on Android. A fix is coming soon. Although I’m not sure about the intermittent aspect of it. The only explanation I can think of is that the list might get manually sorted on one of the devices, which overrides the default sorting order by creation date and the item title.

I also looked into this and found that the sorting issue only occurs with tasks that have spawned from repeated tasks. Tasks I have created and optionally have manually changed ordering on aren’t affected.

A guess might be that there are variables that are tracked to manage the order of tasks, but spawned tasks may not come with these and the system may not handle this corner case.

When you modify the ordering of tasks manually, they get assigned explicit positions in the list, which are honored by the application and get synced as well.

Any actions that you create manually afterwards will not have an explicit position - such actions are placed at the end of the list ordered by creation timestamp.

The actions created by the scheduler all get created at the same instant, so they are order alphabetically in addition to ordering by timestamp. The Android app had a bug that indeed led to a reverse order.

Then as soon as you manually change the position of any task in the focus lists, the positions of all existing actions become explicit and they get synced to other devices as well. I think this is what appeared to you as a bug in the desktop app.

Hope this makes sense.

The Android app version that fixes this will come out in a few days.

Thank you. That mechanism explains the behaviour I saw. Thank you for finding the bug and creating the fix.

On this topic, can you explain how the explicit positions work in this case…

Some projects and tasks lie within multiple areas. If I move Task 1 above Task 2 in Area A and Task 2 above Task 1 in Area B, how should it all show up when looking at other views (e.g. a different tag) and especially the Focus list?

I wonder because for these shared projects and tasks I’m trying to discover the optimal way to order things.

There are different kinds of explicit order in the application, depending on which view is currently open.

When you rearrange items within a single project or notebook, this order will always apply at the project level, no matter how you order things in other views.

The Focus list works similarly - it has its own single, independent order, and the current area does not matter - if you put A before B in one area, then it will appear the same in any other area, as long as the focus list is selected and both actions are visible.

I think the current design produces expected results in most cases. But it’s a little difficult to explain clearly.

Would this summary be correct?

All the following lists have ordering that can be user defined by manually moving tasks up and down:

  1. Actions (in the left pane) except Scheduled (i.e. Inbox, Next, Waiting, Someday/Maybe, Focus)
  2. Projects
  3. Notebooks
    That order is preserved regardless of view modification due to tags/area filtering. If 2 items appear in 2 different lists above, their order can be different depending on the underlying list being viewed if the user has changed their order.

e.g. say you had 3 items that were all Waiting and all in Project A. You could order them one way in the Waiting list and a different way in Project A. The two orderings wouldn’t affect each other.

Yes, you got it right.