It often happens that the corrections we make don’t produce the desired effect. For example, if we remove a place, an entire journey disappears.
It would be nice to be able to go back in time in the corrections that we have applied and therefore a function of the type Undo/Redo would be welcome.
Unfortunately undo/redo is one of those things that’s not really possible in an app like this. There’s two main reasons why:
We’re not the only person making edits - the processing engine is also quietly doing edits itself, either in response to new data or in response to changes we made
There’s often new data flowing in, changing the state of the database while we’re working with it. For example newly recorded location data, but also imported data from HealthKit, etc
Those two things make it difficult to impossible to use normal database undo/redo patterns. The state the data is in after both our changes and the timeline processing and new data changes isn’t one that can be safely or cleanly changed back to an earlier state. So it would require a much more complex undo/redo system to work around that extra complexity.
So basically the end result is: it’s not worth it. Yes it would be nice to have sometimes, but building that system so that it can reliable undo/redo without breaking everything in weird and unfixable ways… would be an overly complex task, and in some edge cases potentially impossible.
Instead I think it’s best to look for improvements in the UI/UX/processing so that if an edit doesn’t do what we expect we identify how and why it went wrong, so that the system can be improved to act more in the ways we expect instead.
Maybe you’ve already thought of this or not sure if such is possible. Is in some sense some raw data of logged GPS kept such that that might help to re-interpret events later? Or maybe it’s more complicated.
It’s difficult to understand what’s happened after modifications, especially as the result of the modification is sometimes different in Timeline and in Editor.
For someone like you who has his nose in the code all the time it’s certainly easier but for me, I can’t explain myself and especially I can’t correct a situation like I described where deleting a brief stop deletes the whole route (in Timeline) but not in Editor. Worse still, I haven’t found a way of restoring this deletion: modifying the segments has only added to the mess.
That one sounds like an Arc Timeline bug, that I’ve seen myself a bunch of times. You’d expect the brief stop to merge into the adjacenct Trip items so that it’s one continuous Trip, but instead … something else weird happens. Arc Editor doesn’t seem to have that bug, even though it’s got pretty much all the same processing rules. So maybe Arc Timeline was… following the rules in the wrong order, or something weird like that.
At this point I think it’s best to accept that Arc Timeline has a bunch of weird and mysterious behaviours (and sometimes also crashes), and that I just need to get things moving on Arc Editor being ready to replace it. But if Arc Editor does something weird / mysterious / wrong, I’ll be wanting to jump on that and make sure it doesn’t happen.
Arc Editor is super easy to fix those kinds of weird behaviours in. Arc Timeline… it’s got so old and cluttered inside that’s it’s sometimes impossible for even me to figure out why it did something, or how to fix it. It’s a creaky old beast that needs to be retired as soon as possible!