Re: [Geary] Disabling Mark as Read Automatically


Maybe lets establish the definitions of the terms conversation and message:  a conversation is a series of messages that have one (1) root message and all other messages belong to that conversation because they are either a reply or forward that can be traced back to the root message.  In other words, it is a tree structure.  The root message can be a sent message or a received message.

Interesting in that context is the phrase "messages above" that was used by you.  A conversation is chronologically ordered with the newest message determining the bottom of a list view of what essentially is a tree.  Not sure my abstractions/definitions of conversation and message work, as displaying a tree structure in a list form as Geary does it gets confusing potentially when chronologically ordering it.  Other email clients use a different approach that truly depicts the tree structure of a conversation.
root message (received email)
| - reply to root
|    | - [received] reply to reply
| - forward of root
     | - [received] reply to the forward
Now in this rather simple example of a conversation that started the conversation with a received message, is the list truly just a flattened representation of a tree structure in chronological order?  The actions taken in above example (reply and forward) and receiving an answer to them could be chronologically interleaved in any possible combination. I think we need to agree that the list is a truly chronological representation of messages in a conversation only, regardless of where in the tree a given message may be. I would ask you to correct me if it is not.  With that definition however, when an action is taken on a message in the middle of the conversation, marking something then applies to the message the action is taken on itself AND all older messages regardless of where in the tree a given message resides. 

BTW, I have examples where Gmail web client AND Apple Mail in iOS and Geary all interpret which messages make up a conversation differ.  I have additionally examples where the count of unread messages in a 'folder' respectively 'label' between Gmail web client and Geary differ based on where in the conversation the action "Mark unread from here" was taken. Very confusing.  Gmail web client does apply by far the best and most intuitive approach for both, keeping messages tied to a conversation as well as counting unread messages that have the same label.  Both are topics for separate conversations, no pun intended.  

Back to the topic at hand using above definitions and abstractions.
Re your question of how to apply "marking" to a conversation as a whole:
Like your outline: 
- Archiving would mark ALL messages in the conversation (as Archive is an action that can be taken on a conversation as a whole only anyway in Geary)
- Replying and Forwarding a conversation as a whole would mark ALL messages in the conversation (as taking that action on the conversation as a whole is in reality applying that action to the last chronological message respectively newest message in the conversation, so it is in fact in line with, or said differently, it is no different than the logic of applying said actions to a message somewhere in the middle of the conversation: taking that action will mark the message that the action is taken on AND all above messages; taking that action on the conversation as a whole just happens to do it on the last message and all above messages, the implemented logic should work for all cases with that and does not need to distinguish if the action was taken on the conversation or a message in the middle of the conversation)
- Replying and Forwarding a specific message in the middle of a conversation would mark the message that the action is taken on AND all messages above in the conversation

Like your naming: "Mark conversation read when replying, forwarding, or archiving." as "replying" is inclusive of "reply" [to sender only] and "reply all". However, I would replace "conversation" with "messages" because as proposed by you, it may not mark an entire conversation if the action is taken on a message in the middle of the conversation, so using the term "conversation" in the feature description of the toggle's option would be misleading, hence better would be: "Mark messages read when replying, forwarding or archiving". As you leave out "deleting" from the description of the toggle, I am inferring that deleting a conversation would not mark the messages of the conversation as read. I would be ok with that, but I would also be ok with an implementation where deleting marks them as read. In the latter case, the description of the toggle should be: "Mark messages read when replying, forwarding, archiving or deleting.".


On Thu, Jan 31, 2019 at 5:33 AM, Michael Gratton <mike vee net> wrote:
Hey Axel, On Wed, 30 Jan, 2019 at 12:08 PM, Axel U <ulrich axel gmail com> wrote:
What I could envision is to toggle between "Mark as read immediately" meaning marking it as read when the conversation is loaded, which is the current behavior and should be the default. The other option for the toggle is to mark it as read only when any of the following actions on that message is taken: Reply, Reply All, Forward, Archive or Delete (marking it read when deleting is debatable, I would be ok either way). Any other action like move to folder or apply label also should not mark it as read automatically. I have no good umbrella term that I can think of what to call that option though. Obviously, leave the current function in the message menu to mark the message as read manually in place as is today.
Hmm, interesting approach.
Regarding the outline in <>: I prefer not to guess when a message or messages in a conversation is marked as read (combination of how much of it is displayed and a time factor if I understand the proposed approach correctly). I would prefer an unambiguous setting that makes it very clear when the marking as read happens.
I'm not actually a fan of the "mark after X seconds" approach anymore, after experimenting around with it a few days ago for issue #80[0]. The goal of that was to ensure auto-mark occurred only as a response to people taking some action (selecting a conversation, scrolling an already selected conversation, etc). Marking after X seconds would to a certain degree go against that again, even if there was an indication of how much longer one has before it gets marked as read, and it really gets in the way when batch-deleting, etc. So I really like this idea of having an option to mark as read only on some other set of explicit actions. The question of how to apply that to a conversation as a whole does come up though. E.g. replying to a specific conversation should probably mark all messages above the one being replied to - so replying to the conversation as a whole would mark all messages as read, but replying to a message half way down would only mark the ones above it as read? Would this also apply to forwarding? Archiving would mark all messages, presumably. I guess the two options in the prefs would be something like the "Mark messages as read when displayed" (the current behaviour, and the default) and "Mark conversation read when replying, forwarding, or archiving."
Hope that helps in the design and describes why I would like the option of disabling messages being marked automatically as read.
Yeah, that was really useful, thanks heaps! //Mike
[0] - <<>>
⊨ Michael Gratton, Percept Wrangler. ⚙ <>

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]