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:
co-authored by
Claude Opus 5.5
parent
dbc0340eeb
commit
460477204b
+64
@@ -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:**
|
||||||
|
|||||||
Reference in New Issue
Block a user