Drag and drop support is coming! Whew, I have been pushing this feature ahead of me for years and I didn’t want to start since I knew it would be a lot of work. So I have been procrastinating on this front for a very long time. Therefore, I was very nervous when I started to work on this feature.
I have been laying the groundwork for this feature already quite a while ago (even before starting to work on FocusGTD3), but its one thing to make preparations, and another to fully embark on the implementation.
So in a nutshell, it really was (and still is) a lot of work, but I really think this will make the app more useful for everyone.
The way it works is that you long press on a task and the moving shadow will appear and you can now drag the task to wherever you want.
Right now, drag and drop is only supported in projects and the inbox. Next up is DND support for tasks within a tag. I hope that this will be completed more quickly since I really want to get FocusGTD3 into the hands of a few testers and gather feedback.
I managed to finish all widget related work as well as the tag selection screen used for assigning tags to a task.
With this, most of the features surrounding OmniFocus3 support are in place.
I decided against initial support for custom alarms (notifications) since currently only OmniFocus for iOS supports this feature and I recon people want to get their hands on FocusGTD3 rather sooner than waiting for this feature.
So the overall standing looks like this:
Basically this means I only plan on adding task reordering support and then I will start with in depth testing before the first alpha version will be released.
Dark mode and new UI will probably come as an update.
I have been mainly working on FocusGTD2 the last couple of days since google decided that it would no longer accept / distribute apps targeted for < Android Oreo.
At the time I didn’t think about it much so I told myself, “targetting Android Oreo can’t be that hard, eh?”. Man, I was so wrong.
New features of Android Oreo such as Doze mode and notification channels basically required me to rewrite much of the alarm notification system. So the last couple of days were consisting of setting many many alarms, waiting for them to go off and then curse at google when they didnt (which was far too often the case).
If you want to know more details you can head over to http://pguardiola.com/blog/darealfragmentation-alarms/ to see the madness. Basically, I now need to have 3 different code paths when I want to schedule an alarm based on the android version. Fragmentation FTW!
I am now slowly rolling out this release (first to testers and then perform a staged rollout and watch if there are unforeseen problems). After this intermezzo, I will go back to FocusGTD3.
Here is a short status update for how its going with FocusGTD3.
I started working on a new Omnifocus 3 feature which lets you show all tasks of a specific tag on the “today” view.
Overall I completed the backend for ordering tasks within a tag, but there is no UI to surface this functionality yet. Since FGTD3 implementation is taking longer than anticipated I will probably push some UI updates out to get a first version done sooner.
A short update on how its going. I have finally resolved most of the questions regarding tag ordering and most of it is now implemented.
The only missing piece for tag related backend stuff is being able to move tasks within a tag to a new position. Once this is done, I will move on to one of my last open backend features which is “custom alarms” support.
I managed to implement basic tagging support in my database backend and was just about to finalize one of my last automatic integration tests (these are programmatic tests that simulate various actions such as various ways to tag / untag / change order of tags, etc.) when I realized that some of my basic assumptions on how tag ordering works was wrong.
I wont bore you to death with the technical details but suffice it to say that I will need to rework portions of my tag ordering logic to accomodate my new findings.
So from an overall status perspective it looks like this
new database: ✅
downward sync: ✅
upward sync (minus task ordering in context): ✅
task tag support: ✅
tag ordering in tasks: ✅
task ordering in tags: in progress
custom alarms: ○
automatic database cleanups: ○
project/folder list: ✅
context list: ✅
Forecast view: ✅
tags popup for task editor: ○
order tasks within tag screen: ○
task reordering within project: ○
complete UI overhaul: ○
dark mode: ○
So as you can see there is still a bunch more work open. I apologize for the long wait but reverse engineering two years of work by Omni is no small task.
I will post updates again once I have finished one of these tasks. So stay tuned.