thunderbird / thunderbird/thunderbird-android
[ML 0.5/MVI.03] - Advanced Actions & Logic Extraction
Open
@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
Migrate complex actions (move, archive, outbox sending) and sorting logic to Use Cases. This milestone completes the decoupling of the MessageListFragment from the HomeScreenActivity.
🎒 Resources
🦮 Rules of the Road
🟢 In Scope
- Extract "Move" action to
MoveMessageUseCase - Extract "Archive" action to
ArchiveMessageUseCase - Modify "Setup archive folder" dialog to be triggered by a VM Effect
- Extract "Send messages" (Outbox) to
SendPendingMessagesUseCase - Extract "Change sort" logic to
ChangeMessageSortingUseCase
🔴 Out of Scope
- New feature development not related to refactoring.
🚧 Technical and/or Business Requirements
- Archive Flow: The "Setup archive folder" dialog must be triggered by a specific Effect from the ViewModel, likely depending on the result of the
ArchiveMessageUseCase. - Sorting Logic:
- Extract sorting logic from
MessageListFragmenttoChangeMessageSortingUseCase. - Logic must save the selected sorting option and ensure the message list refreshes based on the new sort order.
- Extract sorting logic from
- Decoupling: Ensure
MessageListFragmentlisteners are fully decoupled fromHomeScreenActivity.
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.