docs: Bernds Beta-Feedback analysiert - Ursachen (Push, Statusleiste, Vollansicht) + Plan + UI-Entscheidungen

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
Bernd Steckmeister
2026-10-07 12:32:36 +02:00
co-authored by Claude Opus 5.5
parent dbc0340eeb
commit 460477204b
+64
View File
@@ -13,6 +13,70 @@ Schritt (und beim Abbruch mitten im Schritt den Zwischenstand). Format:
--- ---
## 2026-10-07 (Teil 2) – Bernds Beta-Feedback analysiert, Plan steht (NOCH KEIN CODE)
**Bernds Feedback (Beta v0.1.36, Android):** Push kommt an, aber (a) beim
Aufklappen viel weniger Text als bei Element/WhatsApp, (b) immer nur EINE
Nachricht statt mehrerer, (c) keine Bildvorschau. Handy-UI gefällt nicht:
dunkle Farbe, Schrift zu klein, oben kein Platz (Statusleiste überlagert
Text), Bild-/Video-Vollansicht unnötig klein (durchsichtiger Rahmen), lässt
sich nicht durch Tippen ins Leere schließen. Wunsch: genereller UI-Overhaul;
danach Liste weiter, Fokus Stabilität + Flexibilität. Härtetest (PC_TESTPLAN 1)
und Call-Tests (3) kann er noch nicht machen.
**Bernds Entscheidungen (AskUserQuestion, 2026-10-07):** Farben = „Weiches
Dunkel“ (Dunkelgrau statt #0A0A0C, Hell bleibt Option); Nachrichten-
Darstellung = UMSCHALTBAR (Sprechblasen / Liste, Einstellung); Schrift =
größerer Standard (≈16 statt 14 px) + Regler unter Erscheinungsbild, System-
Schriftgröße weiter beachten.
**Ursachen (im Code verifiziert):**
- Push (b): `NotificationHelper.show` nutzt EINE notifId pro Raum
(`stableId(roomId)`) und ersetzt die alte Benachrichtigung komplett.
- Push (a): kein Style (nur `setContentText`) UND Dart kürzt hart auf 100
Zeichen (`_buildBody` in background_push.dart, `_watchEvents` +
`_decryptAndUpdateNotification` in notification_service.dart).
- Push (c): kein Bild-Pfad vorhanden.
- Statusleiste: `main.dart` setzt `SystemUiMode.immersiveSticky`, und
`_MobileShell` (app_shell.dart) hat kein SafeArea → Leiste liegt über
Kopfzeile (auch auf April-Screenshots sichtbar).
- Vollansicht: `media_viewer.dart` Inhalt = Bildschirm minus 24 px,
Barriere 70 % transparent; leere Fläche neben dem Bild gehört zum
GestureDetector (`_toggle`) → Tippen blendet nur Knöpfe aus.
- Zusatzbefunde: Knopf „Gelesen“ schließt nur, sendet KEINE Lesebestätigung;
`_decryptAndUpdateNotification` nimmt `room.lastEvent` statt des gepushten
Events; Access-Token liegt für PushService.kt im Klartext in
FlutterSharedPreferences (`notif_access_token`) – Sicherheitsnotiz.
**Plan / nächster konkreter Handgriff (je ein Commit):**
1. Push: Dart-Modul für Benachrichtigungs-Inhalt (Text ohne 100er-Kürzung,
Antwort-Zitat entfernt via `calcUnlocalizedBody(hideReply: true)`,
Medien-Labels, `notif_preview` auch im Hintergrund beachten) + Tests;
native `NotificationHelper` auf `MessagingStyle` (Verlauf pro Raum in
SharedPreferences, nur fortführen solange Benachrichtigung aktiv ist;
Ersetzen per eventId statt Anhängen beim Platzhalter→Klartext; neue
Nachricht = Alarm, Update = still); Bild: Dart lädt Thumbnail
(`downloadAndDecryptAttachment(getThumbnail: true)`) nach
`cacheDir/downloads/notif/`, native per FileProvider (`.fileprovider`,
Pfad `downloads/` existiert) + `grantUriPermission("com.android.systemui")`;
„Gelesen“ → echte Lesebestätigung (Haupt-Engine bzw. BgEngine `markRead`).
Test: Debug-only Receiver zum Auslösen auf dem Emulator (kein Login nötig),
dann Bernd auf echtem Gerät.
2. Handy: `edgeToEdge` statt immersiveSticky + SafeArea im MobileShell;
Vollansicht randlos/deckend schwarz, Tippen außerhalb des Bildes schließt,
Wischen nach unten schließt, Doppeltipp-Zoom.
3. UI-Overhaul nach Bernds Entscheidungen (Palette in theme.dart, globaler
TextScaler × Nutzer-Regler, Sprechblasen-Variante in chat/message/).
4. Danach ROADMAP-Liste (SDK-Logout-Wettlauf, Abhängigkeiten, …).
**Stolperfallen:** Android-Toolchain + Emulator `Medium_Phone_API_36.1`
laufen auf diesem PC (flutter doctor sauber). In die App auf dem Emulator
KEINE Zugangsdaten eintippen (echter Server) – UI im eingeloggten Zustand
per Windows-Build mit `PYRAMID_PROFILE_DIR=…\.pyramid-autopilot\profile1`
und schmalem Fenster (<900 px = Handy-Layout) prüfen.
---
## 2026-10-07 – Wiederaufnahme nach Pause: Bestandsaufnahme, Test-Runner, Benchmarks, Live-Test stabilisiert ## 2026-10-07 – Wiederaufnahme nach Pause: Bestandsaufnahme, Test-Runner, Benchmarks, Live-Test stabilisiert
**Erledigt:** **Erledigt:**