streetcomplete / StreetComplete

Easy to use OpenStreetMap editor for Android
https://streetcomplete.app
GNU General Public License v3.0
3.9k stars 355 forks source link

Allow to save/load current state of enabled quests #3034

Closed mnalis closed 3 years ago

mnalis commented 3 years ago

Use case As noted in https://github.com/streetcomplete/StreetComplete/issues/1654 and elsewhere, enabling/disabling of quests and their ordering is very time consuming task (and only becoming more time consuming as new quests are added in the future).

And yet users often have a need to have separate sets of quests to use in different circumstances - either due to their mode of movement (bus, foot, ...), time of year (snow covering surface quests), time of day (lit), their priorities and available time (entering restaurants) etc. See https://github.com/streetcomplete/StreetComplete/discussions/2457 for list of use cases.

It would help users a lot, if instead of having to keep rearranging and enabling/disabling quests on regular bases, they could do it only once, and later reuse saved settings.

Proposed Solution

If full-fledged custom presets linked above are deemed too problematic to implement, perhaps it would be possible to at least allow users to save their current quest list (both on/off status of various quests, and their priorities) to file, and later load them from (that or some different file). It could be made available from menu in Quests list like this: quests_saveload

It would work like one expects from any program working with files:

That would keep it simple, unobtrusive (to users not interested in it), and yet allow users to avoid manual drudgery when their changed circumstances require different set of quests.

westnordost commented 3 years ago

Okay, it is hard to talk about the situation when a new implementation/mitigation is done but not released yet. I think, having quest presets at all is going to be much less used/requested/necessary after the stuff on the reorder-quests branch is merged.

mnalis commented 3 years ago

@westnordost well I actually tried it before it was officially released (if people are comfortable with running untrusted APKs, they can download APK from https://github.com/mnalis/StreetComplete/releases/tag/v33.0-mnalis2-questorder and try it themselves), and while it does make defaults better, it does not solve the problem for me - which is about ability to choose from several different sets at different times (and not having better one set, which seems to me to be what quest-order branch does?) .

I've tried to explain with footwear analogy at https://github.com/streetcomplete/StreetComplete/issues/1654#issuecomment-876762448 if it perhaps can better explain the fundamental issue I wanted this issue, quests presets, quest filters etc. to fix.

westnordost commented 3 years ago

I've tried to explain with footwear analogy at #1654 (comment) if it perhaps can better explain the fundamental issue I wanted this issue, quests presets, quest filters etc. to fix.

No, it does not. Let's not talk about huts and foundations, footwear and metaphors like that, it leads nowhere. I uttered before that the solution I choose will not please everyone, as I think this is impossible and that the most likely request that is dropped will be custom presets. So I get that you are not content with the solution because you wanted most of all custom presets. But anyway, lets continue in #1654

rugk commented 3 years ago

As a comment from https://github.com/streetcomplete/StreetComplete/issues/1654#issuecomment-877303757 on-topic of this issue: I would call this not loading/saving or exporting of quests (as that all implies it is going to be saved in a TXT file or so to import it – which may be a nice additional feature, but is IMHO not in scope for this issue), but quests profiles, where you can load 1 of n profiles and create/choose/edit your own ones.

As for the UI I would use a simple selection then too to select your quest profile you want to use.

mnalis commented 3 years ago

@rugk Yes, implementation details are variable of course, this was just the first idea. You seem to suggest using something like "save slots" in games, which is also fine by me; something which looks like: ironseed-decode

In case of this screenshot (from game Ironseed), "encode crew member" saves the state in "save slot", and "decode crew member" reloads the saved state from "save slot" - there is fixed amount of 6 save slots, and you only choose which one to "save" / "load" from (or "save as preset" / "activate preset" or whatever terminology suits it better) .

HolgerJeromin commented 3 years ago

I have a keyboard app which creates a textblock (base64 encoded about 1000 chars) to share with your friends / transfer to new phone to load/save all the keyboard settings.

westnordost commented 3 years ago

Alright.

westnordost commented 3 years ago

I am doing this. Properly. Please appreciate this because I am mainly doing this for you @mnalis (, @Helium314 )

In fact, I have been doing it since Friday, and it is really a lot of work. But then, hopefully the whole topic of quest presets will finally be checked off. I do not intend to open another can of worms with that. I also changed the implementation of the quest orders, as the implementation was a little complex and there was some ancient bug report that noone cared to reliably reproduce yet.

Helium314 commented 3 years ago

I am doing this. Properly. Please appreciate this because I am mainly doing this for you @mnalis (, @Helium314 )

I just want to mention that in my build I have my (somewhat updated) old profiles PR that, once set up, works well enough (for me) and basically provides something like the save/load functionality (but not via an external file).

But I definitely do appreciate your work (especially the properly), and I hope others have use for it as well.

westnordost commented 3 years ago

https://user-images.githubusercontent.com/4661658/125520572-a34ffcff-4c23-42fc-b991-721547752b80.mp4

As you see, it is also possible to reorder the quest types while the filter is on.

westnordost commented 3 years ago

Do you have any comments / feedback about that UI?

waldyrious commented 3 years ago

Do you have any comments / feedback about that UI?

Not sure how finalized the UX in that recording is meant to be, but here goes:

As a general note: the flow for creating new presets is not entirely intuitive. Is the idea that any changes to quest order and enabled status are still automatically saved to the currently selected preset, as they happen? If so, then we are supposed to duplicate a preset and only then configure it, right?

Just spitballing here, but perhaps it would be a nicer flow if we were able to freely make changes that wouldn't be automatically saved (and thus not having to worrying about accidentally messing with a given preset), and then have "save" and "save as" options which would effectively record the changes, replacing the current preset or creating a new one.

All that said, overall I love this approach — it seems pretty flexible and powerful, and FWIW it would address my use cases perfectly!

westnordost commented 3 years ago

I'd expect the "Manage profiles" pop-up to have some sort of Cancel/OK button combo.

Currently, a new selection in the list is applied immediately. You mean it should apply only after pressing OK?

The "Preset name" placeholder is accurate, but not very helpful if one's unsure what's going to happen there. I assume it will save the current configuration as a new preset, right? Perhaps a small explanatory text under that input field would be helpful.

Whoopsie, it should be "Profile name". No, you can add a new profile there. As shown in the video, after pressing "+", a new profile will appear. Edit: Also, the newly added profile will start from zero, i.e. will not be copied over from your current profile. I figure this might in some cases less efficient, but in general you only define those once and I think it is less confusing this way.

Is the idea that any changes to quest order and enabled status are still automatically saved to the currently selected preset, as they happen

Yes, anything you change there is applied immediately (to the current profile). "Save" and "Save as..." stuff is not really what people expect from a UI on a smartphone IMO. People are used to that settings made are applied immediately, not after pressing some "apply" somehwere.

waldyrious commented 3 years ago

Yes, anything you change there is applied immediately (to the current profile). "Save" and "Save as..." stuff is not really what people expect from a UI on a smartphone IMO. People are used to that settings made are applied immediately, not after pressing some "apply" somehwere.

I understand the logic behind instant application of changes. That said, I should point out that the app already uses that sort of dynamic e.g. when selecting answers to quests. It seems to me that the balance between confirmation vs. instant application lies in whether those changes can be easily reversed or not. In the case of preset configurations, given the number of quests and the possible permutations they can be in, I'd suggest that editing quests should be handled as a more sensitive action that would benefit from a confirmation step.

Currently, a new selection in the list is applied immediately. You mean it should apply only after pressing OK?

That would be my expectation, but I can see that in this case instant application of changes is justified (since one can move back and forth between different selections easily and losslessly). So I wouldn't object to there being no button. My main argument for a button is mostly psychological, as it offers more assurance that one is explicitly accepting the selection made in the dialog, and not just backing off from it in confusion or due to a change of mind.

the newly added profile will start from zero, i.e. will not be copied over from your current profile. I figure this might in some cases less efficient, but in general you only define those once and I think it is less confusing this way.

Agreed.

westnordost commented 3 years ago

Hm I decided to rename it to "presets" after all. "Presets" are known in the OSM world as stuff like "Bakery" -> "amenity=bakery", but on the other hand, "profile" is already used for the user's profile. I agree with @waldyrious that "quest presets" seems to be the more fitting term.

I'd suggest that editing quests should be handled as a more sensitive action that would benefit from a confirmation step.

Well enabling/disabling quests as well as moving quests around in their display order (and the changes being applied immediately) has been how this has worked, always.

waldyrious commented 3 years ago

Yes, I know it works like that (and to be honest I always found it a little stressful to edit the quest selection/ordering since it was so easy to mess up), but now juggling multiple presets will make this even more sensitive. But again, this was just a suggestion. I don't consider it a deal-breaker for my usage.

By the way, perhaps showing the name of the preset somewhere at the top or bottom of the screen, while editing the list of quests, would be helpful to provide more visibility to what the current state is, and give the user more confidence that they're doing the right thing.

westnordost commented 3 years ago

By the way, perhaps showing the name of the preset somewhere at the top or bottom of the screen

At the top, the space in the title is already full. I'm not sure how this info could be shown there.

But the current profile is shown in the settings screen, see second 30 in the video posted above.

smichel17 commented 3 years ago

I had a thought the other day… I apologize for not sharing before you started implementation.

It seems that everyone has their own unique use case for which quests they care about and want to see. But how many different use cases does each individual person actually have? I wonder if it would be a good "80% solution" (most of the functionality with less complexity) to:

This would not allow changing the priority order between different presets, but I wonder how much that is needed.

There's probably room to refine this concept, but I didn't want to wait to share now that implementation is started :)

westnordost commented 3 years ago

Yeah no, @smichel17 , I didn't spend 4+ full days to implement this just for considering yet another concept/idea that comes round the corner. I find it quite rude, to be honest.

smichel17 commented 3 years ago
Yeah, I understand, and I regret I didn't share as soon as I had the idea :( I saw that you had started implementation, and so my instinct was, "Quick, post the idea before any more time is spent!" But in retrospect I should have noticed it was too late already. So I apologize — it was a poor time & place to share.
mnalis commented 3 years ago

@westnordost rest assured your hard work is truly really appreciated! :heart:

(It's quite late here so I'll do more/better testing/explaining tomorrow - and reading, as I'm quite slow ATM).

For suggestions:

westnordost commented 3 years ago

Okay, after taking counsel with my pillow, in regards to @smichel17 's suggestion to solve this differently and most importantly in a less complex way, there is one thing that sticked:

I think I will remove the ability to reorder the quests. Feature creep, you know how it works. If a feature was once in an app, there is the tendency to keep it forever, since it is already there. To avoid this, we need to reflect if certain features still make sense and are worth it later. The reordering alone adds a lot of complexity, it is about 500 lines of code.

To make it possible to reorder quests made total sense when the app was still downloading via Overpass, because the quest type order was also the download order and as you might remember, the download took very long to reach the bottommost quest. (So long in fact, that the app would only download 5 quest types or so in a row before stopping, if you remember). Now, all is downloaded at once and all quest types, even if disabled, are created. That was the prime reason to have this in the app. This reason is gone now.

The second most important reason to have this in the app was the display priority - one thing often cited was the "I am on a bus, I don't want opening hours etc to obscure the few quests I am able to solve from the bus" argument. This is now also solved: First, through the reordering of quest types not by "importance" but by how easy and quick they are solvable (from a distance). Second, by being able to create custom presets that only include those quests one really wants to solve. To refer to @mnalis from https://github.com/streetcomplete/StreetComplete/issues/1654#issuecomment-876799555 , he'd put the drinking water quest type to the very top because he deems it most important. But does the position in the order list actually matter if he already got only those quests activated he really wants to solve?

The only reason to keep this feature I see right now would be if people want to see on a greatly zoomed out map where to find quests of a certain type. But compared to the reasons stated above that held true previously, this is really minor, so I am thinking about dropping this to keep it simple for users (and devs).

westnordost commented 3 years ago

rename preset

Don't really see the use case for that.

This is not a biggie (as noted, you'd only do it during setup), but (if not too hard) I think it would be more useful if new profile was created with currently selected quests/order

Yes, more efficient, but I decided against this.

bug?

fixed.

westnordost commented 3 years ago

Currently, a new selection in the list is applied immediately. You mean it should apply only after pressing OK?

That would be my expectation [...] it offers more assurance that one is explicitly accepting the selection made in the dialog, and not just backing off from it in confusion or due to a change of mind.

Makes sense. However, if there was an OK button in that dialog, users could be confused what the OK button does: Does it apply the quest presets selection or does it create the new preset whose name the user just input into the text field? To solve this, I only see the options of either leaving it as it is or instead have the quest presets turn up full screen, similar to the mockup in #2054, i.e. with the adding of a new preset done with the floating action button in the lower right corner:

mnalis commented 3 years ago

@westnordost I do have other use case for priorities, which is is for multiple quests on same node/way.

For example, for roads I have preference what is more important (does it have cycleway is more important than surface which is much more important than number of lanes etc).

Or on the house polygon, address is way more important than roof type.

Or on highway=steps I want to first solve do those steps have a ramp (as it defines if it is usable to me at all with heavily loaded bicycle, so it is important to me), and least important is number of steps (which I don't really care about in 99% of the cases). Same thing with crossing quests.

So if I'm walking without stopping / slowing down and so won't be able to solve all quest, I do want to solve the ones which I think are more important but not too complex).

But for example for car parking quests I don't have a preference how important those are (because I almost never use a car), but I know how easy they are (for example, type of parking I can answer instantly, is there a fee - not so much, so the later will probably get skipped by me).

So I would much prefer if quest ordering would remain in, as I don't see that manual hardcoding priorities can fix all use cases (unless we can all agree that bicycle and hiking are always most important, and that car-related quests are mostly useless and should be of lowest priority :smile:)

waldyrious commented 3 years ago

But the current profile is shown in the settings screen, see second 30 in the video posted above.

I'm sorry, I totally missed that!

if there was an OK button in that dialog, users could be confused what the OK button does: Does it apply the quest presets selection or does it create the new preset whose name the user just input into the text field? To solve this, I only see the options of either leaving it as it is or instead have the quest presets turn up full screen

Full screen sounds good to me. :+1:

westnordost commented 3 years ago

@mnalis But if certain quests are not important to you, why don't you disable them then?

mnalis commented 3 years ago

To solve this, I only see the options of either leaving it as it is or instead have the quest presets turn up full screen, similar to the mockup in #2054, i.e. with the adding of a new preset done with the floating action button in the lower right corner:

I do like this mockup very much. After all, users are expected to be switching profiles much more often than editing them, so it makes sense to make switching profiles be the fast path. Also, it practically eliminates the chance the use will change something they didn't want to change when switching profiles, which is possible in current UI.

westnordost commented 3 years ago

@mnalis Ok I rather meant the overall design of the full screen UI: floating action button to add profile in the corner, not inline.

After all, users are expected to be switching profiles much more often than editing them

On the other hand, I expect to create any profiles at all to be somewhat of a feature for expert users. Most users will just disable quests they don't want to solve (ever) and be done with it. Requiring users to create a preset first (because I'd say the "default" preset would be immutable then) before changing anything is one step more for most users.

mnalis commented 3 years ago

@mnalis But if certain quests are not important to you, why don't you disable them then?

But they are important to me, just less so, and I don't always have the luxury to solve all the quest I find important, due to time or vehicle speed restrictions. For example I've given:

for roads I have preference what is more important (does it have cycleway is more important than surface which is much more important than number of lanes etc).

Let's say I'm driving in a car as a passenger; depending on vehicle speed and in how many smaller pieces is the road mapped, if I might only be able to answer one quest, or I might answer two or three. And if I do not have a chance to solve all the quest, I prefer to solve the most useful ones (like does it have a cycleway in example above). Of course, if I do have a chance (car slow enough, or road segments long enough, or stopped at intersection), I will solve them all as surface and lit are quite important too - just less so than cycleway one.

Also, I sometimes improve OSM for others too; I'm not that egocentric :smile:

mnalis commented 3 years ago

@mnalis Ok I rather meant the overall design of the full screen UI: floating action button to add profile in the corner, not inline.

Oh sorry, I misunderstood. So (if I understand it better now), your question was about should the preset selection:

If that is correct, and entering the presets would remain the same (hamburger / settings / Quest selection and priority / menu / Manage presets), I actually prefer current solution, as I can see quests changing "below" the preset selection sub-window, so it provides kind of a feedback (and has little less UI steps). But it is not a huge deal to me if that is the only difference.

After all, users are expected to be switching profiles much more often than editing them

On the other hand, I expect to create any profiles at all to be somewhat of a feature for expert users. Most users will just disable quests they don't want to solve (ever) and be done with it. Requiring users to create a preset first (because I'd say the "default" preset would be immutable then) before changing anything is one step more for most users.

I would guess that majority of users would never enter the quest selection screen, and those that do are already "advanced" ones, but I'm so happy with presets happening that I'm not going to complain :+1:

Helium314 commented 3 years ago

After using profiles for a while I almost completely stopped re-ordering quests, and the profiles I use all have basically the same quest order because I never bothered to change it. The re-ordering bug played a role in the initial decision not to bother with order, but I didn't miss the frequent re-ordering I used to do.

Only case when I re-order is based on my surroundings:

westnordost commented 3 years ago

I am going to mention some more people who are likely interested in this. Since this is an advanced feature, I'd not like to implement it in a way that is not used:

(looked up in the database which github users match which users in OSM in the top ~100 ranks manually)

I don't expect you to read the whole thread. Here is a summary. So, I am implementing custom quest prests now. Look at this video: https://github.com/streetcomplete/StreetComplete/issues/3034#issuecomment-879382027 I'd like your stance on the following points. Since I am addressing quite a few people, would be good if your answer is short:

  1. Your opinion: Which UI do you find less confusing - if the quest presets are shown and are added/deleted in the dialog (as in the video) or in an own screen? Reasons for the latter are in the conversation between @waldyrious and me directly below the video 1

  2. Your use cases: Do you use the quest type reordering feature? If yes, why? I am considering to remove it to keep it simple, reasons here https://github.com/streetcomplete/StreetComplete/issues/3034#issuecomment-879866839

  3. Your opinion: Which UI do you find less confusing - the one shown in the video or the one shown in #2054 (the latter implies that there is no "quest selection and order" directly in the settings screen but you first enter the screen shown in #2054 and only in the next step, edit the quest type visibilities

Edit: Please NOTE that with v34 onwards, the default quest display order is changed to whatever is solvable easily and quickly (from a distance) first!

westnordost commented 3 years ago

@mnalis But if certain quests are not important to you, why don't you disable them then?

But they are important to me, just less so, and I don't always have the luxury to solve all the quest I find important, due to time or vehicle speed restrictions Also, I sometimes improve OSM for others too; I'm not that egocentric 😄

Right, that's what the quest presets are for no? If you feel you only want to solve the important stuff, you select a different preset. If you want to solve just anything, you switch back.

RubenKelevra commented 3 years ago

Okay, I would really like to have presets. Maybe either fixed once (user cannot edit) that we supply or customizable once (which the user can create/modify/delete).

Both mixed is also okay.

Sorting of quest was rarely used be me. I think never really to increase "productivity".

I tend to walk short routes and activate some quests which I know I can solve while walking, like "is this street lit?". Evaluating the building types, select the right building roofs etc on the other hand is to much to be done while walking, so I deactivate them if I have a time constrain.


Now for the preset part:

We could make the app more approachable by unlocking quest-types in batches depending on the level. So simple quests like "is this quest lit?" with yes/no answers are easier than "opening hours for this shop?" or "which type of building is this?"

While unlocking a new level we could explain each newly unlocked quest type and help the user to understand how he should answer more difficult quests correctly.

The reasoning is that we have to introduce more and more complex quests, like bus lanes, parking lanes, width of streets etc. which need a bit of explanation which is too much for the simple dialog we currently show for the quests itself.

matkoniecz commented 3 years ago

Do you use the quest type reordering feature? If yes, why?

I use it in my fork where I changed default quest order so there is no need to manual reordering after reinstall. Despite that it keeps generating merge conflicts. I want to show more important/easier quests in front of annoying/more time consuming, and some of my preferences here mismatch general ones.

So when I walk I can solve the most important ones (solving all is unfeasible in a city). And at the same time when I wait somewhere I can solve all of them.

Also, I put lit quests at top so I can easily disable them during day and during night will be asked before anything else.

I am fine with removing it as I maintain my own fork already, and I am not a representative SC user here. Manual reordering was very irritating, not sure how many people actually used it.

Which UI do you find less confusing - if the quest presets are shown and are added/deleted in the dialog (as in the video) or in an own screen?

Is it about difference between switching to profile and edits applying to it vs creating profile, applying it and edits not modifying it?

Then the second would be less confusing to me, but

"Save" and "Save as..." stuff is not really what people expect from a UI on a smartphone IMO.

is likely true. And I am firmly in category of people preferring to apply PC style to smartphone, over applying smartphone conventions on desktop computer.

Your opinion: Which UI do you find less confusing - the one shown in the video or the one shown in Ability to create profiles #2054

both seem fine to me (obviously, this is untested)

westnordost commented 3 years ago

Which UI do you find less confusing - if the quest presets are shown and are added/deleted in the dialog (as in the video) or in an own screen?

Is it about difference between switching to profile and edits applying to it vs creating profile, applying it and edits not modifying it?

It's this or that: 1

matkoniecz commented 3 years ago

It's this or that:

No real difference to me. Second maybe would be slightly nicer with long names as there is more space.

mnalis commented 3 years ago

But they are important to me, just less so, and I don't always have the luxury to solve all the quest I find important, due to time or vehicle speed restrictions

Right, that's what the quest presets are for no? If you feel you only want to solve the important stuff, you select a different preset. If you want to solve just anything, you switch back.

Not really, here is example: I'm passenger in the car, hence I want to solve only quest important to me (as a cyclist). I select car preset which has only following quests I find important and which are solvable from a car: 1=one-way street, 2=way completed, 3=has cycleway, 4=surface, 5=tracktype, 6=lit - in that order of preference. Nothing else.

Let's assume none of the quests are solved and all will be asked (not in reality, but for simplicity). Let's also assume car speed is variable, and road segments (OSM ways) are of different length (some 500m, some 5m and anything in between), so for some road segments I have more time to solve quests, for some less.

Now with current quest-profile branch which has working reorder, the car is driving and it passes 5 road segments, I can map 12345 123 12 1 123456 just by clicking on the map, thus solving most important 17 quests.

If the quest order was removed and order was not exactly as I want it (for example 645231, I would have to create say 3 presets: car1 (quests 21), car2 (quests 4231), car3 (quests 645231), and then either:

westnordost commented 3 years ago

@mnalis Ok, elaborate example, but you miss the point, in my view. The example is rather abstract, basically your statement is "but what if I want to have the order differently because I simply want to solve quests in a certain order?". It is abstract, because the "custom" order you'd like to have of the quests you mentioned ...

1=one-way street, 2=way completed, 3=has cycleway, 4=surface, 5=tracktype, 6=lit

.. is actually almost 100% the same as in the quest_reorder branch and not 654321. And this is not a coincidence. 1 and 2 are f.e. further up because you usually see this at the intersection to that road already. The only difference to your preferred order is that cycleway is further down, simply because you see f.e. surface at one glance while looking for a cycleway takes longer cause you need to look on both sides, a line of parking cars is blocking your vision and/or the cycleway may end somewhere in the middle of the street.

Edit: You continue in your example to describe how complicated it would be to emulate a custom quest type order when this feature was missing. Well, no shit, that is expected if that feature is missing. But that in itself is no argument to not drop the feature.

smichel17 commented 3 years ago

Similar UI in Red Moon Proposed UI #124 should help with ordering, since it would become easier to answer a lower-ordered quest.

For profile selection, I have no preference between the two UIs. I would prefer something like this ⇒

I am willing to implement it after the other code changes are complete. There is a similar UI in Red Moon for filter profiles that I could adapt (appearance needs updating & it should be sticky at the top).

TurnrDev commented 3 years ago

I don't expect you to read the whole thread.

And yet I did anyway 😏

  1. Your opinion: Which UI do you find less confusing - if the quest presets are shown and are added/deleted in the dialog (as in the video) or in an own screen?

Neither are confusing, but I prefer the dialog

  1. Your use cases: Do you use the quest type reordering feature? If yes, why?

As mentioned above by someone else about variable speeds. I too solve quests when a passenger, I feel like the loss of quest reordering would be a shame. I feel like presets + quest reordering combined are super-powered but can't say so until I try it out myself. Is usage analysis something you can do?

mnalis commented 3 years ago

@mnalis Ok, elaborate example, but you miss the point, in my view. The example is rather abstract, basically your statement is "but what if I want to have the order differently because I simply want to solve quests in a certain order?". It is abstract, because the "custom" order you'd like to have of the quests you mentioned ...

I "simply want" different order, because it prioritizes things that are important to me (and not just "out of spite", "to be different" or whatever). And why are some things more important to me than others, is IMHO a matter of personal preference.

1=one-way street, 2=way completed, 3=has cycleway, 4=surface, 5=tracktype, 6=lit

.. is actually almost 100% the same as in the quest_reorder branch and not 654321. And this is not a coincidence.

Well I used semi-random 645231 (and not worst-case 654321 as you seem to have read it), in order to better illustrate the general example. As this is just one of several use cases (cycleways, footways, tracks, steps, parkings, houses etc. all have multiple questions on same OSM node/way), and trying to enumerate all of them (and what I personally changed from default ordering) would be too spammy IMHO (but if you really want that I list all cases, I will do my best) - and not very useful as it seems to me to often be matter of personal preference. (again, what one finds more important seems to be matter of taste, and not some natural order - although as you note some of the preferences will be more wildly accepted than others - eg. while for roof type or royal cipher majority agrees is not very important and oneway majority agrees is very important, house type importance for example seems to in dispute (as do other quests like foot/bicycle/car-related ones)

1 and 2 are f.e. further up because you usually see this at the intersection to that road already. The only difference to your

As I said, it was mainly to illustrate the problem more concisely (with just 5 instead of 25 road segments). So yes I agree, in that specific example real life productivity loss might be say just 20% instead of 50% - it is still bad and unnecessary regression to introduce on purpose. (I was primarily oriented to get the use case across by using small and clear example - IRL I might have few more quests in that preset, roads would be partially mapped, etc. so getting exact amount of productivity loss would vary heavily anyway)

preferred order is that cycleway is further down, simply because you see it at one glance while looking for a cycleway takes longer cause you need to look on both sides, a line of parking cars is blocking your vision and/or the cycleway may end somewhere in the middle of the street.

Yes, I understand why default order is best choice for many people, and I absolutely agree with it when used as default (eg. something that can be changed if you don't like it). It is just that I find usefulness in being able to rearrange its priority.

Edit: You continue in your example to describe how complicated it would be to emulate a custom quest type order when this feature was missing. Well, no shit, that is expected if that feature is missing. But that in itself is no argument to not drop the feature.

That is because I was trying to answer your question "Right, that's what the quest presets are for no?" with a "No, because [...]" - as you can see from the example, "quests presets" alone are not good enough in this (any more) situation(s).

Of course I understand if the feature is removed then what it provided will be gone; I was trying to argue that the feature should not be removed by detailing how it provides useful things I use daily (without being unduly cumbersome to those users who don't use the feature). IMHO if usefulness suffer when something is removed, that is a reason enough to consider not removing it.

Of course it should still be weighted against the programmers burden of maintaining that feature (which is yours choice alone), but I was trying to provide useful data in order so you can make informed decision if that burden outweighs the gains it provides (as in your post you seem to have missed that use case which is of main usefulness to me).

Helium314 commented 3 years ago
  1. Your opinion: Which UI do you find less confusing - if the quest presets are shown and are added/deleted in the dialog (as in the video) or in an own screen?

Maybe a separate screen is slightly clearer, but I really like the UI in the video (small and very clear, at least to me)

  1. Your use cases: Do you use the quest type reordering feature? If yes, why? I am considering to remove it to keep it simple,

Already answered above your post

  1. Your opinion: Which UI do you find less confusing - the one shown in the video or the one shown in Ability to create profiles #2054

I find the screen from #2054 slightly clearer, but I think as a new user I would find the select-and-edit flow more confusing than the dialog from the video

mnalis commented 3 years ago
  1. Your use cases: Do you use the quest type reordering feature? If yes, why?

As mentioned above by someone else about variable speeds. I too solve quests when a passenger, I feel like the loss of quest reordering would be a shame. I feel like presets + quest reordering combined are super-powered but can't say so until I try it out myself. Is usage analysis something you can do?

@TurnrDev If you feel comfortable running non-official .apk and want to try how quest presets work, I have built a debug version (which can be run alongside the official one) at https://github.com/mnalis/StreetComplete/releases/tag/v33.1-mnalis2-questprofiles-helium314 (it has few other unrelated but documented features)

TurnrDev commented 3 years ago
  1. Your use cases: Do you use the quest type reordering feature? If yes, why?

As mentioned above by someone else about variable speeds. I too solve quests when a passenger, I feel like the loss of quest reordering would be a shame. I feel like presets + quest reordering combined are super-powered but can't say so until I try it out myself. Is usage analysis something you can do?

@TurnrDev If you feel comfortable running non-official .apk and want to try how quest presets work, I have built a debug version (which can be run alongside the official one) at https://github.com/mnalis/StreetComplete/releases/tag/v33.1-mnalis-questprofiles-helium314 (it has few other unrelated but documented features)

My phone is currently broken so I will have to get it fixed first

Strubbl commented 3 years ago

This issue is about "Allow to save/load current state of enabled quests" and i would like to extend it to all the settings of the app. It does not have to be a straight forward one click solution, but a way to get the settings and move them to a different device would be awesome. Is this issue of export/import of settings already addressed anyhow? Or is this offtopic regarding this issue?

I would love to use profiles (for walking alone or with friends, biking, car passenger, train passenger). And if i can make a backup of the profiles that would be awesome. Because i think i would take some time to create profiles and they would evolve over time. So a backup would save me time. And i could distribute the profiles to other devices.

@westnordost, answers to your questions in https://github.com/streetcomplete/StreetComplete/issues/3034#issuecomment-879943335

1.) both UIs are fine for me 2.) yes, i reorder quests. I reorder quests to reflect my preference of the type of data i want to contribute at that moment. sometimes i move address related quests below the ones for buildings (levels, roof, type) because i would have to type (or touch multiple times) and i have no time for that. But usually address info is more important to me. If i am in a mall or a street with a lot of shops and have some time, i am mostly interested in opening hours and i move that up for that time and afterwards back down the list. Ordering is important to me, because i do not want to disable quests. I have only 2 disabled quests all the time, because i do not know how to answer them (kosher products and internet connection). I do not want to disable quests, because there are areas, where my important quests are solved and i have time to contribute to other quests. The example with lit during day/night was already mentioned. I second this. If disabling quests helps to reduce complexity, IMHO this could be dropped 3.) sorry, i do not get the difference to question 1. So both are fine here, too.

edit: I could also imagine a profile for city center mapping, in which i would move down the building-related quests in the list cause they are hard to answer due to buildings' height, esp. roof type or levels.

riQQ commented 3 years ago

@Strubbl presets / profiles and other settings could be backed up with adb, if it was enabled. As of now, there was not that much customization so it was declined. See #3030.

rugk commented 3 years ago

My two cents regarding the questions:

UI

  1. it's both okay, though I more like the second screen. However, I may suggest another design idea: Try to put the profile switcher into the header bar (or somewhere concise) there to save space. It's also one less click for switching than in the right version (because ) I'm not quite sure where to handle the editing of the names of these then, but as it is the likely rarest use path/UI of all of these, the entry "Edit..." in the list that just opens the popup may be an idea. AFAIK, it was/is also possible to place it into the header of Android, but I'm no Android dev, so I'm not sure.

Relevant art for this may be:

As for 3. I'd prefer your video version, i.e. enter directly into a profile editing screen and only afterwards change/edit/add any profiles/use the existing one to make a new profile or so…

Other question

  1. Reording: I agree that it could b e removed without a loss of features after reading your judgement – profiles may fulfill all use cases. Though, I have to admit, I actually personally also did not make use of reordering before, so my voice should not count much here. I think I really only reordered them when a quest was easier to solve, such as https://github.com/streetcomplete/StreetComplete/issues/2802, so your new default order may suit better already for more…
FloEdelmann commented 3 years ago

My reply to @westnordost's comment:

  1. I think the popup is simpler to use, but I agree with @waldyrious that I would have expected cancel/save buttons. I think the mixture of "selecting the quest preset", "selecting the currently active quests (+ order)" and "selecting the quests (+ order) for the currently active preset" make reasoning about it a bit difficult.

    Considering the other suggestions made in this thread, I created this quick mockup:

    Details * Changing quest selection and priority is only possible in "editing mode" * Resetting and disabling all quests is only possible in "editing mode" * Search is most useful in "editing mode", but may also be useful in "view preset" mode * Clicking the "current preset dropdown" opens the popup from the video * Creating a new preset in the popup changes directly into "editing mode" * Clicking the edit button changes to "editing mode" for the currently selected preset * In editing mode, you need to explicitly save or cancel
  2. I'm not really using the quest type reordering (anymore). I'm not sure yet whether I'd remove it, but I understand the idea to keep it simple. The new default (and only) quest order needs to fit everyone though, so for different quests on the same element with the same difficulty, the most important quests should be first.

  3. See 1.