thunderbird / thunderbird/thunderbird-android

[ML 0.5/MVI.03] - Advanced Actions & Logic Extraction

Open
#10,414 0 comments 0 reactions 2 assignees View on GitHub

@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 MessageListFragment to ChangeMessageSortingUseCase.
    • Logic must save the selected sorting option and ensure the message list refreshes based on the new sort order.
  • Decoupling: Ensure MessageListFragment listeners are fully decoupled from HomeScreenActivity.

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.