Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
mnalis opened this issue Jul 8, 2021 · 57 comments · Fixed by #3210
Closed

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

mnalis opened this issue Jul 8, 2021 · 57 comments · Fixed by #3210
Assignees

Comments

@mnalis
Copy link
Member

mnalis commented Jul 8, 2021

Use case
As noted in #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 #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:

  • Save... would ask for filename in which to save this set of quests (and if file with that name already exists, ask if we want to overwrite it)
  • Load... would present a list of all files (in a SC folder dedicated for saved quests), and after user clicks on one, current list of quests would be replaced by list of quests that was in that file.

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
Copy link
Member

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
Copy link
Member Author

mnalis commented Jul 8, 2021

@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 #1654 (comment) if it perhaps can better explain the fundamental issue I wanted this issue, quests presets, quest filters etc. to fix.

@westnordost
Copy link
Member

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 rugk mentioned this issue Jul 9, 2021
@rugk
Copy link
Contributor

rugk commented Jul 9, 2021

As a comment from #1654 (comment) 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
Copy link
Member Author

mnalis commented Jul 9, 2021

@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
Copy link
Contributor

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
Copy link
Member

Alright.

@westnordost
Copy link
Member

westnordost commented Jul 13, 2021

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
Copy link
Collaborator

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
Copy link
Member

westnordost commented Jul 13, 2021

Device-2021-07-13-222557-1.1.mp4

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

@westnordost
Copy link
Member

Do you have any comments / feedback about that UI?

@waldyrious
Copy link
Contributor

waldyrious commented Jul 13, 2021

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:

  • I'd expect the "Manage profiles" pop-up to have some sort of Cancel/OK button combo.
  • 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.

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
Copy link
Member

westnordost commented Jul 13, 2021

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
Copy link
Contributor

waldyrious commented Jul 13, 2021

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
Copy link
Member

westnordost commented Jul 13, 2021

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
Copy link
Contributor

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
Copy link
Member

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

This comment has been minimized.

@westnordost

This comment has been minimized.

@smichel17

This comment has been minimized.

@mnalis
Copy link
Member Author

mnalis commented Jul 14, 2021

@westnordost rest assured your hard work is truly really appreciated! ❤️

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

For suggestions:

  • One thing that might be useful is rename preset icon (to be put near delete preset icon). Otherwise people might need to drop all the work on preset and start from scratch when they decide it should have better new name, or put up with old name (maybe no longer relevant after changes)

  • Also, (as you say above) when new profile is created it starts from zero ("zero" as in "from app defaults", not "all quests deselected").
    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. That would be more in line with user expectations, and would also remove the need for rename preset mentioned above (as you could easily click + to create new preset with new name and current values, and then delete old preset for same effect)

  • bug? I've built the debug version (which also does have few other changes, but should not be anything related to presets). I noticed a bug, though, I'll try to note what I did (but I might have missed something):

    • uninstall old version, install new version
    • login SC to OSM
    • solve few quests and click on accomplishments etc.
    • go to quest selection
    • click Deselect all
    • click manage presets
    • click +
    • create new preset called nothing
    • then the display broke here duplicating presets in the list, eg. it was showing Default / Nothing / Default / Nothing one below another. Of course I didn't manage to screenshot it (fat fingers), and later quick try to reproduce it didn't do it. I'll try again tomorrow to reproduce and do more testing, but maybe this can give you a hint if it is possibly bug in code.

@westnordost westnordost self-assigned this Jul 14, 2021
@westnordost
Copy link
Member

westnordost commented Jul 14, 2021

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 #1654 (comment) , 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
Copy link
Member

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
Copy link
Member

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
Copy link
Member Author

mnalis commented Jul 14, 2021

@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 😄)

@waldyrious
Copy link
Contributor

waldyrious commented Jul 14, 2021

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. 👍

@westnordost
Copy link
Member

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

@westnordost
Copy link
Member

westnordost commented Jul 14, 2021

@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
Copy link
Member

smichel17 commented Jul 14, 2021

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
Copy link
Contributor

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
Copy link
Member Author

mnalis commented Jul 14, 2021

@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
Copy link
Collaborator

  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
Copy link
Member Author

mnalis commented Jul 14, 2021

  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

This comment has been minimized.

@Strubbl
Copy link
Contributor

Strubbl commented Jul 14, 2021

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 #3034 (comment)

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

This comment has been minimized.

@rugk
Copy link
Contributor

rugk commented Jul 14, 2021

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:

  • the Android 10 app-info selection screen in the settings that has a dropdown like this:
    appinfoscreen
    The same is used for permission overview. And the akku optimization uses the same. All more of a filter than of editing a profile though, I have to admit.
  • the permission manager of Android 10 uses the "click thing and open submenu:
  • Although Osmand may not always be the best inspiration when it comes to UI design honestly, in this case, IMHO, their design for the settings for profiles looks good. Also their little icon in a corner of a map (showing an icon) for switching profiles quickly, is quite nice IMHO. (for, as it has been said, fastly switching the profile and keeping editing profiles more hidden in the settings).

    For more see https://osmand.net/features/navigation-profiles
  • Generally one may have a look at how navigation apps do it. They usually have different settings for car vs bike vs passenger etc., which is related to what use cases people have here.

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 Steps quest asking should not be interrupted by  #2802, so your new default order may suit better already for more…

@FloEdelmann
Copy link
Member

FloEdelmann commented Jul 15, 2021

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.

@peternewman
Copy link
Collaborator

Sorry for a late reply (and that it's got a bit long). Firstly thanks for this @westnordost . The demo looks awesome already.

I think re-reading questions 1 and 3 I've got the distinction.

  1. I prefer the full frame screen, rather than the dialogue, as it gives more space for the name. It would also give space for enabled/disabled count for each preset.
  2. I have, and do reorder, some is to cover ease, some is around my priority. c1336a4 clearly shows there isn't universal agreement on ease even. My priority can change, I've given various examples elsewhere, address is a good one, it's probably one of the more valuable, but fiddly to complete if just walking, but fine if wandering with time to kill. Disabling means they can't be answered at all, so a house or crossing or whatever may have no quests. If Show all quests for element at once #124 ever came to pass, then I might feel differently as I'm not really a zoom out and target a particular quest type of person, although in high density places high priority still hide nearby low ones.
  3. I prefer Ability to create profiles #2054 if you've got profiles, switching becomes the primary thing, and editing is just secondary, so I'm imagining/assuming where there is currently "Quest selection and priority", instead it would say quest profiles, list the name and maybe the enabled stat. Pressing that would give you the screen from Ability to create profiles #2054 and from there you can change profile, or select one to edit. Or even push it into the main home screen depending on uptake?

Have you considered shipping say two presets to start off with? If you've built the feature, it seems a shame not to help people use it, you could have the quest-order default one and a "worthy" one, so universally useful (or helpful to others) stuff first, regardless of time to solve, e.g. defibrillator, accessibility stuff, then maybe say address, opening, dietary and onwards, for when someone wants to do some good.

A question, if the default is immutable, does that mean ALL users have to create a new profile to enable quests that are disabled by default?

Does delete give you an are you sure message at least, I have very fat fingers at times?

Having some sort of indicator of the preset visible all the time would be nice. Could you do something similar to @FloEdelmann 's team mode letter notification thing, if you are allowed to pick one emjoi (for each preset) which it shows there or similar could work (car/bike/train/halo for worthy)? Can you attach a notification to the other side of that menu? Otherwise showing the name in the main hamburger menu would be good at least. It looks like presets and team mode should interact fine, as it's just filtering IDs?

@dbdean
Copy link
Contributor

dbdean commented Jul 18, 2021

The only time I really muck around with the quest order is when a quest I can't answer at the moment is blocking one I can (i.e. I can see a building from the back and know the height/roof-type but can't get the address from this side. Other times though, I can see the address easily, but the house isn't particularly visible, so it's not a great solution. If we fixed #124, I'd probably never bother with quest priority/ordering.

@smichel17 smichel17 mentioned this issue Jul 21, 2021
@Mbodin
Copy link

Mbodin commented Jul 21, 2021

1. Your opinion: Which UI do you find less confusing

Both are completely fine for me. Slight preference for the first as it shows a preview of the most important quests. The demo looks really nice, by the way ☺

In any case, this is a relatively hidden feature: I don’t expect many users to manually change all settings, and I think that it would be fine if the interface is a little crude at time (which is definitively not the case in the shown video!).

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

I do. A first reason was that the “wrong” quest tended to be shown at time, blocking other quests which I was more willing/able to answer (like the roof tops that kept being displayed in a place where I could not see the rooftops). This may have been fixed in v34, but I never changed my presets in between, sorry ☺

The kind of reordering I do is, as already discussed, depending on the kind of travel (bus or pedestrian), and personal importance (I feel more useful mapping tactile paving than car-related features). But I’m completely fine if I’m not being able to reorder this: I do appreciate the code complexity argument given in comment #3034 (comment)

An other use is when I don’t want to answer a quest immediately because I’m not sure. For instance, there are places where tactile paving are present, but old enough that I doubt that they are useful, or crossing where there is technically a crossing island, but it’s so small that I don’t know whether it actually counts, or very small sidewalks, etc. In such cases, I might want to give myself some time to answer, and chose to answer a non-ambiguous quest hidden below it. I could just hide the quest, but sometimes I want to keep the ability to answer it afterwards. I’m fine being forced to hide such quests.

3. Your opinion: Which UI do you find less confusing

If there are already predefined settings for public transportation and walk, I think that the one in #2054 is more intuitive (it mirrors the idea of the interface in OsmAnd, I find). But both would be fine: as I don’t expect that many users to use this feature, I think that both are completely fine.

@smichel17
Copy link
Member

#3114 (comment) is an example of confusion that can't happen as easily if the quest order is not customizable.

@peternewman
Copy link
Collaborator

#3114 (comment) is an example of confusion that can't happen as easily if the quest order is not customizable.

Although conversely this would mean you can't debug an issue like this in the field, or work around it in a beta version aside from by disabling one of the quests.

@georg-d
Copy link

georg-d commented Aug 17, 2021

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

If reordering feature does not cause considerable active maintenance effort but just "lines of code you can mostly just scroll across", please keep it despite original reasons to introduce the feature are obsolete.

So far, I did not use it much because it was too tedious to change back & forth the sequence of 111 (!) quests for different SC use cases - several times a day. When SC allows to create custom presets, I expect to heavily use reordering because the meaningful sequence depends massively on use case's speed, day/night, etc - e.g. I want to see time consuming quests first (but not completely hide others, as I still want to process them if 0 time consuming quests exist!) in #2457 's use case "I'm bored and waiting outside" as these quests are most likely not to be done others, while I want the exact opposite sequence in use case "keep a steady walking speed". So what is the single, only meaningful default order?

Moreover, you wrote

First, through the reordering of quest types not by "importance" but by how easy and quick they are solvable (from a distance).

which clearly shows you've quite different opinion than me - e.g. "Wann wird dieser Postkasten geleert?" is very high in the default list but IMO can't be solved from more than 1m distance and needs to stop driving/walking and needs many taps to answer, while "Hat diese Bushaltestelle eine Bank?" is at the very bottom of the default list but can be solved from 100m distance at a single glance & 2 taps. This is not to citicize your default, it's to show how much preference differs between persons and thus how important it is to allow to reorder based on personal preference.

  1. Your opinion: Which UI do you find less confusing

To first enter the screen shown in #2054 and only in the next step, edit the quest type visibilities. 2 reasons:

  1. I'll change presets much much more often than editing quests toggle & sequence. Hence, I like rugk's suggestion to have presets switching available in main screen - maybe configurable in the settings, with default off to keep app simple for novices, and optionally configured to on for heavier users.
  2. In the last seconds of your video, after creating the preset, do you toggle some quests. I have no idea whether that changed the saved preset, or the preset remains unchanged & just serves as the base for "temporary, current view". This question would not turn up for the flow I named as less confusing.

@westnordost
Copy link
Member

Okay, I've read through all the posts here again and decided:

  • to keep the quest reordering feature for now. I'll probably bring it up another time, when every has had some time with the new quest presets feature
  • Many like the dialog for selecting the current quest preset, but also recognize that the full-screen one is probably clearer. Nobody has any strong opinion about it. So, I'll go with the full screen one
  • Regarding the suggestion to turn it around - first select which presets to edit and then edit them: Nah, I'll keep it as it is. Main reason is that the whole creation and editing a custom preset is really for advanced users only, thus, the average user that finds its way into the settings screen should not be confronted with such a UI.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.