thunderbird / thunderbird/thunderbird-android
Conversation View
Nobody has claimed this yet.
- 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:

This is a conversation in FairEmail (latest message first, only one message can be expanded at a time):
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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