3 Commits
Author SHA1 Message Date
patrickandClaude Sonnet 5 046f7f4359 feat: In-App-Update (Download + Installer direkt öffnen)
"Jetzt aktualisieren"-Button im Update-Banner lädt die neue APK vom Server
herunter (mit Fortschrittsbalken) und öffnet danach direkt den Android-
Paketinstaller (open_filex + FileProvider). Kein Silent-Install (App ist
nicht Geräteeigentümer/MDM) – User bestätigt die Installation weiterhin im
System-Dialog, muss nur nicht mehr manuell ins Portal wechseln.
REQUEST_INSTALL_PACKAGES-Permission + FileProvider-Konfiguration ergänzt.
v0.1.7+8.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dzdm3EWeNdYFUuXFRJryA1
2026-09-10 00:14:53 +02:00
patrickandClaude Sonnet 5 9495115a4d feat: Biometrie-Sperre (Fingerabdruck/Face-Unlock/PIN)
Ersetzt NICHT den Erstlogin (Backend kennt keine Biometrie) – schaltet nur
den lokal gespeicherten Access-Token beim App-Start bzw. beim Zurückkehren
aus dem Hintergrund frei. Geräte ohne Biometrie/PIN bleiben unverändert
(kein Lock-Screen). MainActivity auf FlutterFragmentActivity umgestellt
(Voraussetzung für local_auth), USE_BIOMETRIC-Permission ergänzt. v0.1.2+3.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dzdm3EWeNdYFUuXFRJryA1
2026-09-09 23:44:41 +02:00
patrickandClaude Sonnet 5 0b980d73bc feat(mobile): Flutter-App Grundgerüst (Login + Stempeln)
Employee-only App gegen bestehende Backend-API: Login inkl. TOTP-Schritt,
Ein-/Ausstempeln, Pause, Status "heute". Refresh-Token läuft nur als
HttpOnly-Cookie (Backend gibt ihn nie im Body zurück) → persistente
Cookie-Jar statt Secure-Storage-Refresh-Token. android/-Projektordner via
flutter create auf root@192.168.1.236 generiert, INTERNET-Permission
nachgetragen. Ungetestet auf echtem Gerät.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Dzdm3EWeNdYFUuXFRJryA1
2026-09-09 22:59:22 +02:00