thunderbird / thunderbird/thunderbird-android

Conversation View

Open
#6,197 4 comments 18 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

type: enhancement
Dominant language
Kotlin
Stars
14k
Forks
2.8k
Avg merge
3d 3h
Merged PRs (30d)
57

Description

In addition to the current threaded view, add support for a conversation view that displays all messages in a conversation. This is what most mobile clients do these days.

In the message list, we show one entry per conversation just like we do for threads. Only when conversation view is enabled, tapping this entry will not open an additional message list screen, but a message view screen that displays all messages, one below the other, starting with the oldest message. Messages that are already marked as read should be displayed in a collapsed state so only some basic information is visible (contact picture and display name of the author, date/time, message preview?). The view should scroll to the first unread message. Unread messages are displayed in an expanded state where the message body is visible (we should probably collapse quoted text, though).

This is what a conversation looks like in the Gmail app:

image image

This is a conversation in FairEmail (latest message first, only one message can be expanded at a time):

image

Open questions:

  • How do we determine exactly which messages are part of a conversation? By default sent messages are saved to the Sent folder. So we definitely want to include those messages. What about archived messages? Drafts? Some messages might be in totally different folders. Do we care about those?
  • How do we handle long conversations? Do we break them apart after a limit is reached (I believe Gmail is doing that). If not, we need a way to only load/display parts of a conversation. Show a placeholder like the Gmail app? Display only relevant parts of the "list" and lazy load the rest?

Note: This is very similar, but not the same as

  • #735

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing threaded message list and message view flows described in the issue. Define how messages across folders belong to a conversation, how long conversations load, and how read, unread, quoted, and collapsed messages behave; done means the conversation view opens from one conversation entry and displays the required messages with the specified scrolling and expansion behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
kotlin
Domain
mobile
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.