Implement multi-account search and improve repository fakes

- Extended search to support global queries across all accounts.
- Updated SearchScreen to handle optional account context and unified results.
- Centralized mailbox comparison logic in Mailbox model.
- Added copyWith to Account model.
- Fixed race conditions and incorrect overrides in unit, widget, and integration tests.
- Reached 80% unit test coverage.
This commit is contained in:
Thomas Güttler
2026-05-08 01:01:18 +02:00
parent cd0892763c
commit 8d268f1165
17 changed files with 468 additions and 620 deletions
+6 -5
View File
@@ -20,10 +20,11 @@ Then push
## Tasks
### 1. Multi-account search improvement
### 1. Implement Undo for Delete and Move actions
Extend the search functionality to allow searching across all accounts.
Provide a way for users to undo accidental deletions or moves, improving the safety of the application.
- **UI**: Add a search icon to the account list screen or a global search bar.
- **Repository**: Implement `searchEmailsGlobal` to query all accounts in the database.
- **Protocol**: For remote search, parallelize IMAP SEARCH across multiple accounts.
- **Infrastructure**: Implement a `ChangeLog` or similar mechanism to track the last N destructive actions.
- **UI**: Display a snackbar with an "Undo" button after a delete or move action.
- **Logic**: Implement the reverse operation (moving back from Trash or to the source folder) when Undo is pressed.
- **Sync**: Ensure that undo operations correctly interact with the `pending_changes` queue.