AM: Allow changing account type
Description
Currently DAVx⁵ uses a single account type for both normal accounts and address books. This change introduces support for multiple account types, making it possible to extend beyond the current single type.
In old account manager, our app supported multiple types (Google, WebDAV, Yahoo, Murena). Adding this flexibility now ensures we can add new account types in future commits.
Screenshots
Technical details
Tests
Issues
https://gitlab.e.foundation/e/os/backlog/-/issues/3511
10 commandments of code review
Summary by CodeRabbit
-
New Features
- Added multi-account-type support across the app (creation, lookup, rename, delete, and setup).
- Setup flow now captures and validates account type, preventing duplicate name/type combinations.
-
Bug Fixes
- More reliable account detection in push, sync, and collection refresh.
- Improved address book handling, cleanup, and migrations for mixed account types.
- Debug info now lists all address-book accounts accurately.
-
Refactor
- Centralized account type logic and mappings for accounts and address books.
-
Chores
- Moved dependencies to Gradle version catalog for easier maintenance.
-
Tests
- Updated test signatures to reflect account-type-aware APIs.
Edited by CodeRabbitAI