Hi,
When clicking undo (maybe long-click?) it could be useful to have access to the list of undoable things to undo something else than the last quest solved.
This is useful for instance when tagging speed limits in an area and realizing afterwards that we missed a "speed area" sign. Very often, the user will also have tagged cycle lanes and lights for these streets and which to undo only the speed limits for the last 2/3 streets.
An idea of UI for this could be that a long press on the undo button would open a panel showing the last 10 to 20 solved quests (maybe all, with pagination, I don't know how it works within the app).
Then clicking / sliding any past solved quest would undo it.
The long press is not a good idea, it would be somewhat of a hidden feature. When this is implemented, it should be the default behavior (and thus, the UI should be straightforward and simple).
showing the last 10 to 20 solved quests
I mean, how would that list look like? That is the interesting part, because the app should not show the actual OSM tags in that list as they haven't been exposed to the user before. So, how else to make the user recognize which item in the list of changes is the right one?
I was thinking of a list of icons of the quest and name of the POI next to it. Something like this where the icon would be the quest icon and the title would be the name of the POI?
What if it has no name?
Hmm, for the use case described in first message, I guess a copy of the question asked during the quest would be enough. Given the quests around it and with the quest message, it would be enough to find it back.
But I agree this UI could be improved :/
But the question can be very long.
I don't know how exactly the quest code ist structured, but it could be helpful when each quest would provide a history version (just a class method) of itself. The question and answer could be shortened for example for that case.
Yeah, maybe a kind of "name"? Just as the directories and classes in the code for each quest also have a name, one may determinate a similar name for the quests.
I would suggest replacing the Undo Arrow with a History icon. Tapping on it would show a chronological dropdown panel of your edits, grouped by session and/or date. Only the current session would include direct undo buttons, but by clicking on any edit's icon or location name you'd be zoomed back to the place on the map and asked if you want to undo or change your answer.
Here's a quick mock-up:


Thanks for the mock-up! Generally, by the way, anything that StreetComplete remembers, can also be undone. So whatever can be displayed in the dropdown can be undone. I think StreetComplete remembers it for one day or so.
Two problems become apparent with this mockup:
What about this?:
On clicking the history, the icons on the map change - only already done quests are shown. The menu only shows the quest icon and "x time ago", no name, no "undo" button, so is very slim. Scrollable vertically. Tapping on one item zooms to that item on the map but does not open the "really undo" confirmation dialog yet, instead only then the undo-button is shown.
You're welcome! My thinking for limiting the Undo to the most recent few entries was because it would be unlikely to have precise recall of long-ago edits. Though if StreetComplete only retains the last day, then it might be reasonable to extend Undo to all entries. But I agree with your suggestion to only offer Undo once zoomed in to the map feature. That would be the safest way to prevent mistaken undoing of edits.
For missing/longer names I don't see it being a large issue. Any missing names could just be left blank, or be given alternative context by filling in with an icon/text of the answer given and/or a thumbnail of the area edited. Names that are too long could use ellipses [...] or fade away towards the right side like Chrome and Firefox tab titles now do. Just showing a column of timestamped icons (likely with many repeats) probably wouldn't give sufficient context to find something more than a couple steps back, forcing you to tap on each one to check what it refers to.
I agree if there's enough screen real estate it would be helpful to swap out the default display of pending quests for the History View of completed quests. One way would be to give the History both a Map View and List View. The List displays initially, but then collapses to the left edge if not interacted with, offering the full Map View. The List side panel could be toggled out again or collapsed with a toolbar expand edge.
If there's a History map display, then the icon should be darkened/depressed/outlined to indicate that's the current view and avoid user confusion. If the ★ icon gets further development to show detailed stats or competition then it (and perhaps the Settings "⋮") could work the same way with a unified tabbed interface.


I was going to ask for a "History List" for the reasons highlighted above. Just throwing my support in for this type of idea, as I was in need of similar functionality just last night.
Most helpful comment
Thanks for the mock-up! Generally, by the way, anything that StreetComplete remembers, can also be undone. So whatever can be displayed in the dropdown can be undone. I think StreetComplete remembers it for one day or so.
Two problems become apparent with this mockup:
What about this?:
On clicking the history, the icons on the map change - only already done quests are shown. The menu only shows the quest icon and "x time ago", no name, no "undo" button, so is very slim. Scrollable vertically. Tapping on one item zooms to that item on the map but does not open the "really undo" confirmation dialog yet, instead only then the undo-button is shown.