• niklas.ortmann released this 2026-10-15 17:52:49 +02:00 | 4 commits to main since this release

    Kernlogik:

    • 45 JVM-Tests für Dateinamen-Generator, Blockstatus-Regel und PDF-Export-Mapper.
    • 77 Instrumented-Tests für DocumentationRepository (inkl. Fortsetzen), PatientRepository und WoundCarerRepository. Sie laufen gegen eine In-Memory-Datenbank mit Fakes für Foto-/Signatur-Speicher und PDF-Erzeugung.

    Room:

    • 123 Instrumented-Tests für alle DAOs, Suchabfragen, Relationen (Cascade und Restrict) und Transaktionen (Commit, Rollback, Verschachtelung, Parallelität).

    UI:

    • 78 Compose-UI-Tests für die Abläufe Neuer Patient, Neue Dokumentation, Bearbeiten, Autosave, Signatur, Foto, Fortsetzen und Dokumentationsliste. Sie laufen auf einer In-Memory-Datenbank, die echte App-Datenbank bleibt unberührt.

    Fehlerbehandlung:

    • Die App stürzt bei Speichermangel nicht mehr ab, weder beim Arbeitsspeicher (OutOfMemory) noch bei vollem Gerätespeicher oder voller Datenbank. Betroffen sind Fotoimport, Signatur, PDF-Export und Bildumwandlung. Du bekommst eine verständliche Meldung mit dem Grund.
    • Haken und Freitexte gehen bei Speicherfehlern nicht mehr verloren: Ein nicht gespeicherter Freitext bleibt erhalten und wird beim nächsten Versuch nachgeschrieben. Die Anzeige zeigt immer den tatsächlich gespeicherten Stand. Dafür gibt es eine neue Hinweismeldung im Bearbeiten-Bildschirm.
    • Fehlgeschlagene Foto-, Signatur- und PDF-Vorgänge hinterlassen keine halben oder verwaisten Dateien mehr. Eine bereits vorhandene PDF bleibt bei einem Exportfehler erhalten.
    • Der PDF-Export und die Bildumwandlung werfen keine Fehler mehr, sondern liefern ein Fehlerergebnis. Die Ladeanzeigen bleiben dadurch nicht hängen.
    • Scheitert nur das Wundversorger-Register, bleibt die Signatur trotzdem gespeichert.
    • Das Patientenformular bleibt bei Speicherfehlern mit allen Eingaben offen und zeigt eine Meldung

    Datenschutz:

    • Der Log beim Fotoimport enthält keine Fehlermeldungen mehr, die Dateipfade oder URIs verraten könnten.
    • Beim Löschen einer Dokumentation werden auch ihre PDF- und Bildexporte gelöscht.
    • Exporte älter als 7 Tage und liegengebliebene Kameraaufnahmen älter als 24 Stunden werden beim App-Start entfernt.
    • Der FileProvider gibt nur noch Exporte und die Kameraaufnahme frei, nicht mehr Originalfotos und Signaturen.
    • INTERNET und ACCESS_NETWORK_STATE werden im Manifest ausdrücklich ausgeschlossen.
    • Dateipfade sind gegen ../ abgesichert.

    Korrigiert:

    • PatientRepositoryTest: Zeitstempel werden jetzt in Millisekunden verglichen. Die Datenbank speichert nur Millisekunden, upsert() liefert aber genauere Werte.
    • Exportierte PDFs verschwinden nach 7 Tagen. Sie lassen sich jederzeit neu erzeugen. Die Frist steht in ExportedFilesCleaner.kt.
    Downloads