thunderbird / thunderbird/thunderbird-android
[ML 0.5/MVI.02.2] Define and Implement UpdateMessageFlags UseCase (Flow-based)
Open
@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
MessageStoreviaMessageRepository. - 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
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.