-
-
Notifications
You must be signed in to change notification settings - Fork 358
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
Comments
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. |
@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 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 |
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. |
@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: 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) . |
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. |
Alright. |
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. |
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. |
Device-2021-07-13-222557-1.1.mp4As you see, it is also possible to reorder the quest types while the filter is on. |
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! |
Currently, a new selection in the list is applied immediately. You mean it should apply only after pressing OK?
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.
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.
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.
Agreed. |
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.
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. |
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. |
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. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
@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:
|
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). |
Don't really see the use case for that.
Yes, more efficient, but I decided against this.
fixed. |
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? |
@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 ( Or on the house polygon, Or on 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, 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 😄) |
I'm sorry, I totally missed that!
Full screen sounds good to me. 👍 |
@mnalis But if certain quests are not important to you, why don't you disable them then? |
@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 ...
.. is actually almost 100% the same as in the 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. |
#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 am willing to implement it after the other code changes are complete. |
And yet I did anyway 😏
Neither are confusing, but I prefer the dialog
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? |
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.
Well I used semi-random
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)
Yes, I understand why default order is best choice for many people, and I absolutely agree with it when used as
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). |
Maybe a separate screen is slightly clearer, but I really like the UI in the video (small and very clear, at least to me)
Already answered above your post
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 |
@TurnrDev If you feel comfortable running non-official |
This comment has been minimized.
This comment has been minimized.
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 edit: |
This comment has been minimized.
This comment has been minimized.
My two cents regarding the questions: UI
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
|
My reply to @westnordost's comment:
|
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.
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 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? |
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. |
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!).
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.
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. |
#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. |
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
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.
To first enter the screen shown in #2054 and only in the next step, edit the quest type visibilities. 2 reasons:
|
Okay, I've read through all the posts here again and decided:
|
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: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.
The text was updated successfully, but these errors were encountered: