thunderbird / thunderbird/thunderbird-android
[ML 0.5/MVI.01] - Foundation & ViewModel Setup
@dani-zilla is already working on this.
Since Jan 23, 2026.
- Dominant language
- Kotlin
- Stars
- 14k
- Forks
- 2.8k
- Avg merge
- 3d 3h
- Merged PRs (30d)
- 57
Description
🎯 The objective
Establish the MVI architecture for the MessageListFragment. This includes defining the state, events, and effects, and refactoring the ViewModel to follow the UDF (Unidirectional Data Flow) pattern. This is the prerequisite for all subsequent feature migrations.
🎒 Resources
ℹ️ List all relevant resources like BugZilla meta bugs, Figma files, Notion links and other files. These can be filled in later.
🦮 Rules of the Road
ℹ️ Initial definition of requirements and limitations, the scope of this feature and other potential considerations in order to keep the project narrow and focused.
🟢 In Scope
- Define the
MessageListState - Define the
MessageListEvents and Effects - Adjust the
MessageListViewModelto use a UDF approach
🔴 Out of Scope
- UI Redesign (unless specified)
- Migration of specific message actions (Move, Archive, etc.) - scheduled for later milestones.
🚧 Technical and/or Business Requirements
- Define the MessageList State:
- The state must contain all data required to display content (Selected folder, List of messages, Swipe action preferences, Loading indicators, Search query, Sorting options).
- Define the Message List Events and Effects:
- Define these before connecting real data to organize data requirements and dependencies.
- Adjust the MessageListViewModel:
- Must extend the
BaseViewModel. - Must expose a strong state that the UI relies on.
- Must handle user events and update state accordingly, replacing the current limited implementation.
- Must extend the
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.
Assessment
This issue has not been assessed yet.