Custom sort reordering on mobile

@lightzoo I understand your frustration - it does feel like a feature which should have been added by now. I’ve made quite a lot of contributions to the Joplin codebase (as a volunteer) and I did look into how this could be implemented after seeing this thread, but I think it’s a bigger task than I’m willing to put in the effort for. I’ve already got 17 Joplin PR’s in review and they’ve been creating a lot of extra work at the review stage.

Joplin does support custom sort order on desktop and iPhone.

How is this supported on iPhone? There shouldn’t be support on iPhone if it’s not supported on Android.

For anyone that is interested to contribute a code change for this, here are some details of my analysis:

  1. The most logical way to implement the feature on mobile without altering the ui layout (there is no space left in the header bar for more options after long pressing a note in the list), would be to make note list items sortable via drag and drop after long pressing a note in the list. This can either be by making the items drag immediately upon long press, or more ideally make some drag handles appear after long press, and then allow rearranging the items via the drag handles while in the long press mode
  2. The mobile app currently does not include drag and drop of list item functionality anywhere else in the app. Therefore it will be required to choose a suitable Node library to support this, add it to the project, test it’s suitability and compatibility with the existing long press mode on the note list
  3. Drag and drop of items should only be possible when the ordering is set to custom, and the order must be recorded on the relevant entity so it will be synced to the server, matching the way this is done on desktop
  4. Sorting of items should also be restricted in groups, to match the desktop app. Eg. If you have notes and todos in the same notebook, the todos can be rearranged within the todos (which display at the top), but can’t be rearranged into the notes below it. Behaviour likely differs if the uncompleted todos at top setting is disabled, but I have not tested how this behaves on desktop