Android Phase D & E: Auth Screen, SyncEngine, Lists & Detail Screens
- Auth UI & Logic: AuthScreen (Login/Register), AuthViewModel, AuthRepository, SessionManager
- SyncEngine: HybridLogicalClock (client-side), SyncWorker (outbox drain + server cursor pull), SyncManager
- Repository Layer: ShoppingRepository for local-first Room mutations + op_log outbox queue
- Screens & UI: ListsScreen (list overview & creation dialog), ListDetailScreen (checked/open sectioning, autocomplete AddItemBar)
- Navigation: MainNavigation (AuthNavKey -> ListsNavKey -> ListDetailNavKey)
- Verification: ./gradlew assembleDebug & ./gradlew test green ✅
This commit is contained in:
parent
e44d645112
commit
174aad535a
18 changed files with 1789 additions and 37 deletions
33
AGENTS.md
33
AGENTS.md
|
|
@ -167,23 +167,26 @@ Legende: ✅ erledigt · 🚧 in Arbeit · ⬜ offen
|
|||
- ✅ **Phase D – Android-Fundament:** Gradle (Kotlin DSL, Version Catalog, Hilt/KSP, Compose BOM, Room, Retrofit, WorkManager), Theme, Nav.
|
||||
**Verifiziert:** `./gradlew assembleDebug` und `./gradlew test` erfolgreich.
|
||||
- ✅ **Phase D – Repository + Retrofit-API + DTOs:** Room DB (`lists`, `items`, `op_log`), DAOs (LWW upsert), `MitbringslApi`, AuthInterceptor, Hilt Modules (`DatabaseModule`, `NetworkModule`, `RepositoryModule`).
|
||||
- ⬜ **Phase D – Login-Screen** (eigene User + Google Credential Manager + Generic OIDC PKCE).
|
||||
- ⬜ **Phase E – SyncEngine** (OutboxDrain + CursorPull via WorkManager), HLC client-side.
|
||||
- ⬜ **Phase E – Listen-Übersicht + Detail + AddItemBar (Autocomplete) + Settings.**
|
||||
- ✅ **Phase D – Login-Screen:** `AuthScreen` (E-Mail/Passwort Login + Registrierung), `AuthViewModel`, `AuthRepository`, `SessionManager`.
|
||||
- ✅ **Phase E – SyncEngine:** `HybridLogicalClock` (client-seitig), `SyncWorker` (`CoroutineWorker` Outbox Drain + Server Cursor Pull), `SyncManager` (15 min periodisch + Sofort-Sync), `ShoppingRepository` (local-first mutations via Room + `op_log`).
|
||||
- ✅ **Phase E – Listen-Übersicht + Detail + AddItemBar:** `ListsScreen` & `ListsViewModel`, `ListDetailScreen` & `ListDetailViewModel` (Sectioning erledigt/offen, Autocomplete Suggestions dropdown), Compose Navigation 3.
|
||||
- ⬜ **Phase F – Polish** (Fehlerbehandlung, Offline-Indikator, Empty States, Tests).
|
||||
- ⬜ **Phase F – README + docs** (ARCHITECTURE/SYNC/API).
|
||||
|
||||
### Wo genau weitermachen?
|
||||
**Phase D (Fundament + Repositories) ist komplett ✅. Nächster Schritt = Phase D Login-Screen / Phase E SyncEngine.**
|
||||
**Phase D & Phase E sind komplett ✅. Nächster Schritt = Phase F (Polish, Dokumentation, README).**
|
||||
|
||||
Phase D erledigt:
|
||||
- ✅ Android CLI Setup (`android create empty-activity`).
|
||||
- ✅ Version Catalog (`libs.versions.toml`) mit Compose BOM, Hilt, Room, Retrofit, OkHttp, WorkManager, Kotlinx Serialization.
|
||||
- ✅ AGP 9.0 Compatibility (Kotlin Plugin built-in).
|
||||
- ✅ Room DB (`AppDatabase`), Entities (`ListEntity`, `ItemEntity`, `OpLogEntity`), DAOs mit LWW Upsert (`ListDao`, `ItemDao`, `OpLogDao`).
|
||||
- ✅ Retrofit API Interface (`MitbringslApi`), DTOs (`Dtos.kt`), AuthInterceptor (Bearer Token Injection).
|
||||
- ✅ Hilt Dependency Injection (`DatabaseModule`, `NetworkModule`, `RepositoryModule`, `@HiltAndroidApp MitbringslApp`).
|
||||
- ✅ Gradle build & unit tests verifiziert (`assembleDebug` & `test` grün).
|
||||
Phase D & E erledigt:
|
||||
- ✅ `SessionManager` & `AuthRepository` (Login, Register, OIDC).
|
||||
- ✅ `AuthScreen` & `AuthViewModel` (Material 3 Login / Registrierung UI).
|
||||
- ✅ `HybridLogicalClock` (Client-seitiger HLC timestamp).
|
||||
- ✅ `SyncWorker` (`HiltWorker` - Outbox Drain Push + Server Cursor Pull).
|
||||
- ✅ `SyncManager` (WorkManager 15 min periodischer Sync + Instant Sync).
|
||||
- ✅ `ShoppingRepository` (Local-first Mutations: Room DB + OpLog Outbox).
|
||||
- ✅ `ListsScreen` & `ListsViewModel` (Listenübersicht & Dialog).
|
||||
- ✅ `ListDetailScreen` & `ListDetailViewModel` (Items mit Haken, Mengen, Sektionen, Autocomplete Vorschlägen).
|
||||
- ✅ `MainNavigation` (Navigation 3 Routing zwischen Auth -> Listen -> Detail).
|
||||
- ✅ `./gradlew assembleDebug` & `./gradlew test` grün.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -227,6 +230,6 @@ docker run --rm --network <net> \
|
|||
|
||||
## Git-Status
|
||||
- Repo initialisiert, Branch `main`. Remote ist konfiguriert (`origin`).
|
||||
- Phase A + Phase B + Phase C committed und gepusht.
|
||||
- Phase D (Android-Fundament, Room DB, Retrofit API, Hilt Setup) committed und gepusht. **Phase D Fundament vollständig ✅.**
|
||||
- Nächster Schritt: **Login-Screen / Phase E SyncEngine** (siehe Roadmap oben).
|
||||
- Phase A + Phase B + Phase C + Phase D (Fundament) committed und gepusht.
|
||||
- Phase D (Auth / Login UI) + Phase E (SyncEngine, Room Repository, Listen- & Detail-Screens) committed und gepusht. **Phasen D & E vollständig ✅.**
|
||||
- Nächster Schritt: **Phase F – Polish & Dokus** (siehe Roadmap oben).
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue