thunderbird / thunderbird/thunderbird-android

[ML 0.5/MVI.02.2] Define and Implement UpdateMessageFlags UseCase (Flow-based)

Open
#10,510 0 comments 0 reactions 1 assignee View on GitHub

@rafaeltonholo is already working on this.

Since Feb 10, 2026.

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

Description

Description

Implement the UpdateMessageFlags use case to handle changing message states (e.g., Flag.SEEN, Flag.DELETED).

Goal

Standardize flag updates using a reactive Flow that emits the result of local updates and remote synchronization status.

Acceptance Criteria

  • The use case returns a Flow<Outcome<UpdateMessageFlags.Success, UpdateMessageFlags.Error>>.
  • Updates the MessageStore via MessageRepository.
  • Enqueues the appropriate flag synchronization command to the Backend, if needed.
  • Testing: Unit tests using Fakes to verify that local state is updated and the correct backend sync call is initiated.

Technical Details

  • The flow should emit as soon as the local update is successful and potentially again when the backend command is enqueued (if needed).

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.