thunderbird / thunderbird/thunderbird-android
[ML 0.5/MVI.02.1] Define and Implement MoveMessages 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 MoveMessages use case within the MessageOperationsContract. This use case is responsible for moving messages between folders in the local database and coordinating the move on the remote server.
Goal
To provide a reactive way to move messages that can be easily chained within the DeleteMessages orchestration pipeline.
Acceptance Criteria
- The use case returns a
Flow<Outcome<MoveMessagesOutcome.Success, MoveMessagesOutcome.Error>>. - Successfully updates message folder associations in the local repository.
- Triggers the corresponding move operation on the
Backend. - Correctness is verified via unit tests using Fakes (e.g., FakeMessageRepository, FakeBackend) covering success and failure (e.g., move error) scenarios.
Technical Details
- Must provide a mapping of source
MessageUids to new destinationMessageUids (for UIDs that change during a move) to support downstream flag updates.
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.