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 user to see/comment on ALL open Notes (even their own) #2692

Closed
mnalis opened this issue Mar 29, 2021 · 40 comments
Closed

Allow user to see/comment on ALL open Notes (even their own) #2692

mnalis opened this issue Mar 29, 2021 · 40 comments
Labels
feedback required more info is needed, issue will be likely closed if it is not provided

Comments

@mnalis
Copy link
Member

mnalis commented Mar 29, 2021

Related to #1029, it would be nice if SC user could see all open Notes (including their own Notes).

Use case

I would prefer if Show all notes preference would in fact be showing all notes (and not only notes that the user currently logged in via SC has never interacted with, which seems to be current behavior). Some of the reasons:

  • sometimes I mark notes on desktop (JOSM) to mark that I need to (re-)survey something physically on-site (which I can then either solve directly in SC, or can improve the note with comment and picture if it requires editing in full-blown editor).
  • sometimes I mark note in SC which I intend so solve in same physical trip on location, but am unable to do from current position (for example I'm on the wrong side of the stream, or I don't want to wait 10 minutes for train to pass to gain access, or current vintage point only shows part of the picture [think quest for long stretches of road], or I want to complete mapping the area in this trip but part of it is inaccessible from current point but will be on return part of trip etc.)
  • sometimes I opened the note on earlier day (in SC or other mobile app) as I couldn't answer it fully then, but can now (for example, place wasn't opened at the time, or I only could check part of the way, or the data was about to change [like under (re-)construction] or is only surveyable during daytime [think visibility] or nighttime [like lit sometimes] etc.)
  • the default preference (showing only notes not related to current user, and ending with question mark) would still be the default, so vast majority of users will not be affected - only those that indicated they want to see all notes would actually see all notes - so it does not seem to me such a change would cause general user outrage.

Current workaround is using additional app on the mobile and switching between it and SC (which has it's own set of problems - not only is it quite unergonomic and delays the mapping, switching apps also causes SC to lose GPS signal and never acquire it automatically again in some annoyingly high percentage of cases, which requires closing and opening the app again, and is annoying)

Proposed Solution

Make Show all notes preference setting to do exactly that if enabled - show all Notes (and not filtered subset of Notes).

@matkoniecz
Copy link
Member

matkoniecz commented Mar 29, 2021

So if note would be present it would never disappear, even once answered? Or would it reappear on rescan?

Also, see #569

@westnordost westnordost added the feedback required more info is needed, issue will be likely closed if it is not provided label Mar 29, 2021
@dbdean
Copy link
Contributor

dbdean commented Mar 31, 2021

Maybe notes could show again if there is a new comment since it was hidden in SC. Something like that would be very useful for me too.

@mnalis
Copy link
Member Author

mnalis commented Mar 31, 2021

@matkoniecz I don't understand what you mean by "even once answered"? Can notes be "answered" in SC? I've only been able to add additional comments to them (when clicking on Note and being presented with "Can you contribute anything to this note?" dialog), which as far as I can tell never changes open/closed status of the note.

So yes, if "Show all notes" preference is enabled, I propose to always show all open notes (if that is what you're asking?). Only when note is closed (usually in some other tool, unless I've missed option in SC to close notes) would it disappear from SC in such case.

Edit
ah, looking in detail at #569 I see what you probably meant - the fact that SC hides notes when you comment on them. Does not change my answer, though - I do not think that any kind of note hiding is wanted when user explicitly selected non-default Show all notes = True preference.

However if some people think it might be useful for them, I have nothing against that preference being radio button choice (instead of boolean toggle as it currently is) - something like:

Show all notes:
- [ ] only open foreign notes phrased like a question (recommended)
- [ ] all open foreign notes
- [ ] all open notes (even your own)

@peternewman
Copy link
Collaborator

Show all notes:
- [ ] only open foreign notes phrased like a question (recommended)
- [ ] all open foreign notes
- [ ] all open notes (even your own)

Given SC presumably tracks something about notes to hide some when you choose, if it also tracked the IDs of notes created by you in SC some further granularity could be added (which would cover everyone apart from people using SC on two separate devices, or perhaps that could be covered by note metadata?):

Show all notes:
- [ ] only open foreign notes phrased like a question (recommended)
- [ ] all open notes phrased like a question (including yours)
- [ ] all open foreign notes
- [ ] all open notes (even your own, except ones you've commented on)
- [ ] all open notes (even your own, including ones you've commented on)

Working on the principal that you could add a note in iD or whatever and then see it as if another user had created it in SC, which would cover the majority of most people's use cases (aside from @mnalis stream and railway examples).

@matkoniecz
Copy link
Member

@matkoniecz I don't understand what you mean by "even once answered"? Can notes be "answered" in SC? I've only been able to add additional comments to them

I meant "comment added with SC or user user selected 'no, hide' in 'Can you contribute anything to this note'" by "answered".

@westnordost
Copy link
Member

westnordost commented Apr 1, 2021 via email

@mnalis
Copy link
Member Author

mnalis commented Apr 5, 2021

@westnordost I do agree that is too many options which would confuse users (and yet does not cover all possibilities that user might want - I myself can think of few more!)

So, I'd go with at most 3 options as I suggested previously, and that only if people who are currently using show all notes = True are viciously opposed for that option to really show all notes (included notes the user has interacted with). If they are OK with meaning of that (non-default) option being changed, I'd keep it as boolean True/False.

@matkonicz ah, I see now. I never used that option on Notes it seems. I guess SC tracks it internally somehow (as I don't see Notes change on server when I select it for test). I guess restore hidden data mwould then make it reappear if it was hidden in such way?

If so, it could either continue to behave as it was previously (as user is explicitly requesting to hide it). Alternatively, no, hide could be effectively no-op if user selected show all notes = True, if that is easier to implement.

@smichel17
Copy link
Member

smichel17 commented Apr 5, 2021

There is another middle ground:

  • Keep the option boolean. Show only questions // Show all notes
  • When adding a note through SC, hide it, the same way as we hide quests in "can't say" > "no, just hide".
  • Add a new option, like "restore hidden quests" to un-hide hidden notes.
    • Actually, don't. Instead, add a confirmation dialog for "restore hidden quests", with two checkboxes (quests/notes).
  • If the user has "Show all notes" enabled, when the leave a note, show a dialog explaining that notes they create are hidden by default, and can be un-hidden in the settings.

Part of the reason I like this is that the current implementation of restoring hidden quests isn't 100% ideal. Usually when I tap that button I only want to restore one quest; it would be better if there were a UI for viewing hidden quests (on the map) and restoring them individually. If something like this were added in the future, it would also work well as a place where you can view your own notes.

@peternewman
Copy link
Collaborator

That's too many options!

I'm guessing you don't want to add (and have to code and test) multiple drop downs which that is effectively trying to hide:

  • Only question notes
  • Include my notes (outside of SC)
  • Include ones I've commented on.

So, I'd go with at most 3 options as I suggested previously, and that only if people who are currently using show all notes = True are viciously opposed for that option to really show all notes (included notes the user has interacted with).

But from a workflow perspective, it's likely that if a note has been opened outside of SC (regardless of whether you or someone else opened it), it probably needs someone on-site to answer it (using SC), and if someone (or you) has responded to it (on SC) it's likely the on-site answer has been provided. i.e. the foreign should be the app, not the creating user.

I'd probably go as far as to say that if someone has opened a note "well" (good notes/photo) on-site using SC, it's unlikely another on-site user can do anything useful, it needs some tagging checked etc.

If so, it could either continue to behave as it was previously (as user is explicitly requesting to hide it). Alternatively, no, hide could be effectively no-op if user selected show all notes = True, if that is easier to implement.

But then there is no way to hide a note apart from by commenting on it @mnalis !

@peternewman
Copy link
Collaborator

* If the user has "Show all notes" enabled, when the leave a note, show a dialog explaining that notes they create are hidden by default, and can be un-hidden in the settings.

I assume you just mean when specifically leaving a note (unless it's a line in the existing dialogue it's going to really drag if you have to tap through that whenever you "Can't say".

Part of the reason I like this is that the current implementation of restoring hidden quests isn't 100% ideal. Usually when I tap that button I only want to restore one quest; it would be better if there were a UI for viewing hidden quests (on the map) and restoring them individually. If something like this were added in the future, it would also work well as a place where you can view your own notes.

But that leaves things stuck (or arguably worse) until that's implemented. As most notes which I've hidden are generally stuff I can't help with on-site.

@peternewman
Copy link
Collaborator

But that leaves things stuck (or arguably worse) until that's implemented. As most notes which I've hidden are generally stuff I can't help with on-site.

I see #748 lets you undo hiding stuff, presumably also including notes, so this point may be moot, as long as it's a recent quest at least.

@smichel17
Copy link
Member

On the other hand, the (awesome!) UI in #748 (comment) is very close to what I was imagining in #2692 (comment). I want to play around with it before offering any concrete suggestion, though (especially to see if I even care at all, being able to undo notes now).

@peternewman
Copy link
Collaborator

Hi @westnordost ,

The commit comment in 98cc1bc is "showing all notes now shows all notes except where the user is the last one to comment to" but from my experience there is an unexpected side effect.

I think there are a few different types of notes:

  • Another user opened, no comments
  • Another user opened, last comment not from myself
  • Another user opened, last comment from myself
  • I opened, no comments
  • I opened, last comment not from myself
  • I opened, last comment from myself

If I'm not the last person to comment (as per the commit comment) then I might be able to add something, so I want to see the notes. i.e.:

  • Another user opened, no comments
  • Another user opened, last comment not from myself
  • I opened, last comment not from myself

If I've already replied, I'm unlikely to have much to add (in most circumstances):

  • Another user opened, last comment from myself
  • I opened, last comment from myself

Potentially unless it's particularly old, but hopefully I answered accurately at the time. I guess if it was say 3/6 months old I could confirm what I said was still true.

Finally there is:

  • I opened, no comments

This is a bit of a grey area, depending on your interpretation of "except where the user is the last one to comment". I think there are two scenarios though. Firstly the user just created the note in SC, which is what I keep seeing, you can't say and add a note and obviously it pops up immediately. This also means you can't answer any quests "under" it unless I hide it. Would it re-appear if someone needed more info from me though and they replied?

Secondly if I leave a note (most likely not in SC), but more generally some time earlier when not on-site, then anyone on-site (including myself) could likely answer it.

Suggested solution, hide notes with no comments just the opening message created by myself in SC, either indefinitely or for say 24 hours after creation (or some shorter time; obviously tuning that is a balance between how much waiting I need to give after adding a note in iD say, and not seeing a note on the walk back on a wander).

@westnordost
Copy link
Member

Sorry, I missed your point. Can you write in short what is the behavior that currently occurs but you don't want to see?

@peternewman
Copy link
Collaborator

Answer a quest with can't say and add a note, or probably add a note directly too, and it immediately appears back in SC!

@dbdean
Copy link
Contributor

dbdean commented May 24, 2021

I frequently leave comments (and/or notes) for myself in other apps to answer when I'm out and about in SC. For me, the right behaviour should be that if the last comment (or the note itself if no comments) was created by me in StreetComplete then don't show it, otherwise do.

@andrewharvey
Copy link
Contributor

I frequently leave comments (and/or notes) for myself in other apps to answer when I'm out and about in SC. For me, the right behaviour should be that if the last comment (or the note itself) was created by me in StreetComplete then don't show it, otherwise do.

Agreed. I've even created a note in SC, then replied to my own comment on OSM.org asking myself to re-check again during survey, for me to answer again in SC.

last comment (or the note itself)

last comment, unless no comments, then the note itself

@westnordost
Copy link
Member

Answer a quest with can't say and add a note, or probably add a note directly too, and it immediately appears back in SC!

That's deliberate. Someone in this thread mentioned that he wrote a note in SC (to himself) but later wanted to comment on it.

Would you rather have the behavior as @dbdean described?

Give me your thumbs.

@matkoniecz
Copy link
Member

Give me your thumbs.

On which comments?

@westnordost
Copy link
Member

On mine

@peternewman
Copy link
Collaborator

Answer a quest with can't say and add a note, or probably add a note directly too, and it immediately appears back in SC!

That's deliberate. Someone in this thread mentioned that he wrote a note in SC (to himself) but later wanted to comment on it.

I think my time based solution would keep everyone happy (potentially combined with @dbdean 's so the time only applies to SC originated notes where you are last):

Suggested solution, hide notes with no comments just the opening message created by myself in SC, either indefinitely or for say 24 hours after creation (or some shorter time; obviously tuning that is a balance between how much waiting I need to give after adding a note in iD say, and not seeing a note on the walk back on a wander).

The only possible reason I could see for wanting to see a note I'd just created in SC within SC would be if I say walked round the corner and found something else and realised I should comment on it, but for those rare events, I'd imagine a second note would be the easiest solution.

@mnalis

This comment has been minimized.

@matkoniecz
Copy link
Member

matkoniecz commented May 24, 2021

While I see the code has changed, it seems to make no improvement to me. I create a note and still cannot see it in SC.

For start, are you running v32 ( https://github.com/streetcomplete/StreetComplete/releases/tag/v32.0 ) or some older version? Have you enabled setting to show all notes?

@mnalis
Copy link
Member Author

mnalis commented May 24, 2021

@matkoniecz oops, you are right, it seems I've reset it to off while testing on that phone (and main phone with correct setting is still on v31.3, waiting for f-droid update). I've now made it Show all notes: on again on v32.0 and now it seems to work mostly correctly (ie. showing my own notes created in SC or JOSM). It still seems to hide notes if I happen to comment on them, though, which introduced some more confusion in the mix.

@dbdean if you want to have your own notes hidden, then you should simple keep Show all notes: off, which is the default. If you explicitly change it to Show all notes: on, then it will show all notes (including you own, which some people, like myself who opened the issue, find very useful for reasons listed at the top of the issue).

@westnordost I'm somewhat confused by voting, are thumbs up for support of the "That's deliberate" current behavior (which you implemented in 98cc1bc), or in support for changing it to dbdean's idea? Anyway I'm in support of showing all notes if Show all notes: on is enabled. Current behaviour is closer to that simple ideal than dbdean's idea, but it still seems to hide notes if I comment on them? Is that intentional (and what is rationale, if so)?

@westnordost
Copy link
Member

Thumbs up: changee to what dbdean proposed, thumbs down: keep as it is in v32.0

@mnalis
Copy link
Member Author

mnalis commented May 24, 2021

Perhaps different people really have different preferences, so best way might be 3 choice question instead of yes/no question?

Of if not, and there would be no possibility in SC to show all notes (which would work best for me, but I seem to be somewhat outspoken), perhaps at least translation of that preference should be changed from "Show all notes" to "Show more notes" in order to avoid confusing the users (and be factually correct)?

@smichel17
Copy link
Member

smichel17 commented May 24, 2021

I made this table as part of a longer comment that I decided wasn't worth posting. But maybe this is still useful.

Markdown source
| Author of latest reply | Note was opened by self, in SC | Note was opened by self, in other editor | Note was opened by someone else |
|:-|:-:|:-:|:-:|
| Self | :x: | :x: | :x: |
| Someone else | :heavy_minus_sign: | :heavy_minus_sign: | :heavy_minus_sign: |
| Someone else, and the reply is a question | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: |
| No replies yet | :x: (changed from :heavy_minus_sign:) | :heavy_minus_sign: | :heavy_minus_sign: |
| No replies yet, and the original note is a question | :heavy_minus_sign: | :heavy_minus_sign: | :heavy_check_mark: |

:heavy_check_mark: = Always shown  
:heavy_minus_sign: = Only shown if "Show all notes" setting is enabled  
:x: = Never shown

dbdean proposal

Author of latest reply Note was opened by self, in SC Note was opened by self, in other editor Note was opened by someone else
Self
Someone else
Someone else, and the reply is a question ✔️ ✔️ ✔️
No replies yet ❌ (changed from ➖)
No replies yet, and the original note is a question ✔️

✔️ = Always shown
➖ = Only shown if "Show all notes" setting is enabled
❌ = Never shown

@westnordost
Copy link
Member

I find this table confusing.

@smichel17
Copy link
Member

The table is intended like #2692 (comment), but in 2d. I guess I'm also missing an "…and is a question" column for "No comments".

@smichel17
Copy link
Member

smichel17 commented May 24, 2021

I made it because I was having a hard time following all the different variations on behavior. So the table may be wrong. I updated it (including inverting the rows and columns) so hopefully now it is easier to follow. I'm not going to spend any more time on it, so if it's not useful and you all are clear on what you're talking about, ignore & move on.

@dbdean
Copy link
Contributor

dbdean commented May 24, 2021

@dbdean if you want to have your own notes hidden, then you should simple keep Show all notes: off, which is the default. If you explicitly change it to Show all notes: on, then it will show all notes (including you own, which some people, like myself who opened the issue, find very useful for reasons listed at the top of the issue).

I do want to see all notes, but I don't see a lot of value in SC-created notes appearing immediately in SC, especially when done in response to quests.

  • sometimes I mark notes on desktop (JOSM) to mark that I need to (re-)survey something physically on-site (which I can then either solve directly in SC, or can improve the note with comment and picture if it requires editing in full-blown editor).

No worries, my solution (only show user notes when the last comment, or note if no comments was not created by the user in SC) would be ok for this.

  • sometimes I mark note in SC which I intend so solve in same physical trip on location, but am unable to do from current position (for example I'm on the wrong side of the stream, or I don't want to wait 10 minutes for train to pass to gain access, or current vintage point only shows part of the picture [think quest for long stretches of road], or I want to complete mapping the area in this trip but part of it is inaccessible from current point but will be on return part of trip etc.)

Is this in response to a quest, or are you adding a custom note? If it is response to a quest, can't you just leave the quest unanswered?

  • sometimes I opened the note on earlier day (in SC or other mobile app) as I couldn't answer it fully then, but can now (for example, place wasn't opened at the time, or I only could check part of the way, or the data was about to change [like under (re-)construction] or is only surveyable during daytime [think visibility] or nighttime [like lit sometimes] etc.)

So just leave the quest unanswered?

@dbdean
Copy link
Contributor

dbdean commented May 24, 2021

I could see some value in custom notes always showing, regardless of the creator.

Answers to custom notes in SC should still hide the note though, at least until another comment happens.

Maybe an checkbox option on the form to hide notes when you create them?

@mnalis
Copy link
Member Author

mnalis commented May 25, 2021

@dbdean yes, I'm mostly interested in custom notes. Although some minority are quest notes too (esp. when it probably needs a split but unknown where, or when I definitely want to visit that location on way back as I find it more important than 99% of the quests, eg. "is that water on that hill over there drinkable").

As for differentiating between custom notes and quest notes in the map display logic, I'm not sure how easy it would be to implement (I'm afraid not too easy). However if it was easy, it would work good enough for me if all custom notes (no matter who or when created or commented on them) were always shown when show all notes=on. But there is no "answers" to notes, only additional "comments", and sometimes you do want to add several of them...

BTW leaving quest unanswered only works if you've cleared pretty much everything else. If your even a smallish area has hundreds or even thousands of unanswered quests (as most of mine do), it is hopeless.

As for checkbox option to hide, it probably adds unnecessary complexity (but would also work for me). You can click and hide notes even now if you want - it is just a click or two more. But you can never show hidden notes, which is much bigger problem if you want to see them.

@peternewman
Copy link
Collaborator

@dbdean yes, I'm mostly interested in custom notes. Although some minority are quest notes too (esp. when it probably needs a split but unknown where, or when I definitely want to visit that location on way back as I find it more important than 99% of the quests, eg. "is that water on that hill over there drinkable").

I'm a bit confused @mnalis . If you're answering the quest with a note, it vanishes, and you can't actually split it when you get to the split. Although with the new offline stuff you can always split it multiple times, i.e. each time you come to a change in surface or whatever.

As for differentiating between custom notes and quest notes in the map display logic, I'm not sure how easy it would be to implement (I'm afraid not too easy). However if it was easy, it would work good enough for me if all custom notes (no matter who or when created or commented on them) were always shown when show all notes=on. But there is no "answers" to notes, only additional "comments", and sometimes you do want to add several of them...

Personally it feels more like notes for yourself (during a survey) and other notes. If there's say a "what sport is played here" and you answered it with a note "there's now a building", someone might comment back saying what is the outline of the building and you'd resurvey that etc. i.e. it's the standard note/question and then "answer", further question, answer etc. If they don't hide once you've commented, are you hiding them when you've finished your survey? What happens if someone comments on it after you're done? Or are you "hiding" any notes by doing the edits and resolving them when back at your computer? I guess the other notes are your request for private ones: #2559

BTW leaving quest unanswered only works if you've cleared pretty much everything else. If your even a smallish area has hundreds or even thousands of unanswered quests (as most of mine do), it is hopeless.

Those numbers stagger me, or the fact they're related. I can go somewhere where e.g. houses have been just mapped as buildings, and have loads, but they're all standalone and don't interact. Although looking at your screenshots in #2559 perhaps you're talking about when zoomed out a lot, in which case that's true in Central London too, but surely you're not actually trying to answer quests when zoomed out that much as you aren't near them?

Have you considered turning off most of the quests and going one or two types at a time to get it to a more manageable number?

As for checkbox option to hide, it probably adds unnecessary complexity (but would also work for me). You can click and hide notes even now if you want - it is just a click or two more. But you can never show hidden notes, which is much bigger problem if you want to see them.

Doesn't the undo thing allow you to do that now? Although not programatically hidden ones versus ones which have been chosen to be hidden.

I know @westnordost doesn't want lots of settings, but personally to me this desire for SC to essentially be a notes browser is another level further from the quest type model so there should be the ability to see all notes I've not responded last to separately from every note ever.

Unless they get unhidden when someone replies which would work as a compromise for me.

@westnordost
Copy link
Member

So, this is the logic now, to show all notes except:

  1. notes hidden by user
  2. notes where user replied last
  3. notes created by user in this app that have no replies yet
  4. respective to setting: notes neither phrased as questions nor with a survey required hashtag

@westnordost
Copy link
Member

It is not possible to ascertain with which app a user replied to a note, so it is not possible to also show notes where the user replied last but with another app.

@westnordost
Copy link
Member

Code should btw. be easily readable:

private fun Note.shouldShowAsQuest(
    userId: Long,
    showOnlyNotesPhrasedAsQuestions: Boolean,
    blockedNoteIds: Set<Long>
): Boolean {

    if (id in blockedNoteIds) return false

    if (comments.last().isReplyFromUser(userId)) return false

    if (probablyCreatedByUserInThisApp(userId) && !hasReplies) return false

    if (showOnlyNotesPhrasedAsQuestions &&
        !probablyContainsQuestion() &&
        !containsSurveyRequiredMarker()
    ) return false

    return true
}

@andrewharvey
Copy link
Contributor

It is not possible to ascertain with which app a user replied to a note, so it is not possible to also show notes where the user replied last but with another app.

Doesn't SC embed in the content "by StreetComplete", could search for that.

@mnalis
Copy link
Member Author

mnalis commented Jun 7, 2021

@westnordost If I read it correctly, I see that a0fa130 changes behaviour to show even less notes when "Show all notes" is enabled. Which is fair, as majority seems to wanted it that way. This is however completely opposite of what this issues was suggesting (showing more notes when "Show all notes" is enabled).

So I was wondering, would you accept PR that changed Show all notes preference from boolean to 3-state (in the same way as Select theme preference chooser):

  • All notes (including all your own comments)
  • Most notes (all but those commented by you)
  • Only notes phrased as questions

1st option would show all notes, expect those users have manually blocked (id in blockedNoteIds)
2nd and 3rd options would keep current behaviour as in a0fa130

@westnordost
Copy link
Member

No, I wouldn't.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feedback required more info is needed, issue will be likely closed if it is not provided
Projects
None yet
Development

No branches or pull requests

7 participants