Update .gitignore to exclude Android/Gradle files and enhance TimeEntryController and TimefixService for better error handling and performance. Refactor frontend components to use AppBrand for consistent branding across views.

This commit is contained in:
Torsten Schulz (local)
2026-05-14 22:17:29 +02:00
parent 7d5c8cffc7
commit 5b6adab4cd
72 changed files with 5704 additions and 111 deletions

View File

@@ -0,0 +1,58 @@
# Android Technical Next Steps
Stand: 2026-05-14
## OAuth
Ziel: Android soll Google OAuth direkt starten koennen, ohne WebView-Klon.
Empfohlener Ablauf:
1. Backend bekommt einen Android-kompatiblen OAuth-Callback mit App-Link oder Custom-Scheme.
2. Android startet den Google-Flow ueber Browser Custom Tabs.
3. Callback oeffnet die App per Deep Link, z.B. `timeclock://oauth-callback?token=...`.
4. App speichert JWT im bestehenden `TokenStore` und laedt `/auth/me`.
5. Fehlerfaelle: abgebrochener Login, abgelaufener Token, fehlender Account, Offline.
Technische Punkte:
- Redirect-URI muss in Google Console und Backend konfiguriert werden.
- Token darf nicht in Logs erscheinen.
- Der bestehende E-Mail/Passwort-Login bleibt Fallback.
## Offline-Stempeln
Umgesetzt als Grundfunktion:
- Netzwerkfehler bei `clock(action)` speichern die Aktion lokal in `OfflineClockQueue`.
- Beim naechsten erfolgreichen Dashboard-Refresh werden gespeicherte Aktionen in Reihenfolge synchronisiert.
Noch offen fuer produktionsreife Offline-Funktion:
- UI-Hinweis mit Anzahl ausstehender Aktionen.
- Konfliktbehandlung, falls der Serverzustand nicht mehr zur Aktionsfolge passt.
- Persistente Audit-Anzeige fuer synchronisierte/fehlgeschlagene Offline-Aktionen.
- Tests mit simulierten Netzwerkfehlern und Wiederverbindung.
## Smartphone/Tablet UI-Feinschliff
Pruefpunkte mit echten Backend-Daten:
- Smartphone: Bottom-Navigation + Submenue fuer Buchungen, Einstellungen, Auswertung und Verwaltung.
- Tablet: linkes Section-Menue, Detailbereiche und breite Listen.
- Lange Namen/E-Mail-Adressen duerfen keine Buttons oder Zeilen sprengen.
- Admin-Listen mit vielen Benutzern/Feiertagen muessen scrollbar bleiben.
## Phase 8 Teststrategie
Erste lokale Tests sind angelegt fuer:
- API-Serialisierung wichtiger Backend-Responses.
- Gehashte IDs als Strings auf geschuetzten Endpunkten.
- Offline-Queue-Serialisierung.
Weitere sinnvolle Tests:
- Repository-Tests mit fake API-Schicht.
- ViewModel-Tests fuer Login, Stempeln, Offline-Queue und Rollenwechsel.
- Compose-Screenshot-Checks fuer Smartphone und Tablet.