- Einstellung 'Navigation: Seitenmenue | Untere Leiste' (Handy, Standard
bleibt Seitenmenue): Tabs Chats/Server/Du, Server-Uebersicht als Karten,
Du-Tab mit Profil + Einstellungen, Zurueck-Taste ueber die Tabs
- CallDock als eigenes Widget (Anrufleiste auch ueber der Tab-Leiste)
- Sprachkanaele am Handy als Kachel mit 'wer ist drin'
- Suchfeld mit Lupe, 'Kanaele durchsuchen' im Server, Filter-Chips am PC
umbrechend, '#' nur bei Server-Kanaelen, englische Reste entfernt
- Anrufansicht merkt sich Bubbles/Kacheln, Bubbles mit leichtem Glanz
- UI-Tour: Gruppenanruf (echter zweiter LiveKit-Teilnehmer), Bubbles mit
5/7 Personen, untere Leiste; Version 0.1.42
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Bernds Wunsch 2026-10-08: UI grundsätzlich prüfen (Navigation, Sackgassen,
Anruf-Logik). Audit + Konzept in docs/UI_AUDIT.md, belegt mit neuer
Screenshot-Tour integration_test/ui_audit_tour_test.dart (35 Zustände,
Handy + PC, zwei Testkonten, Test-Space mit Sprachkanal).
Sofort behoben:
- S1/S2: Gegenseite legt auf / Anruf scheitert / Sprachkanal bricht ab →
automatisch zurück zum Chat mit Hinweis (Fehler sichtbar statt still);
leere Anrufansicht deutsch mit Zurück-Knopf (vorher englische Sackgasse
ohne Zurück am Handy).
- S4: toter „Threads“-Knopf entfernt. S5: Space betreten (PC) öffnet
letzten bzw. ersten Textkanal. S6: keine doppelte Anrufsteuerung am PC.
- Annehmen-Fenster mit Anrufer-Avatar und Anrufart; eigene Kachel mit
eigenem Initial statt „D“; Mitgliederliste rund mit Profilbild und „(Du)“;
Tastaturkürzel nur am PC; englische Texte in Anruf/Leerzuständen deutsch.
- Tests: Fehlerempfänger des Testrahmens nach app.main() zurück (vorher
verschwanden Fehlermeldungen), Lesebestätigungs-Test im Wegwerf-Raum statt
in der DM, robustere Schritte; test.ps1 räumt liegengebliebene
Test-Prozesse weg; gemeinsame Hilfen integration_test/support/.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Bernds Test 2026-10-08 (Streamen ging weder am PC noch am Handy, Ton kam
nicht an, Trenner blieb manchmal stehen) – mit neuem Live-Anruftest
(zwei Testkonten im selben Prozess) nachgestellt und behoben:
- Bildschirm teilen: Die Stromzuordnung rief ein SDK-getFeeds() auf, das es
nicht gibt; der Fehler wurde geschluckt → Übertragungen wurden nie
angezeigt und beim Sender nie als aktiv erkannt. Jetzt typisierte
Zugriffe (remote/localScreenSharingStream, 'stopped' beachtet).
- Verbindungsaufbau: matrix-SDK verwirft Kandidaten, die vor der fertig
verarbeiteten Einladung bzw. während des Annehmens eintreffen; unter
Windows wirft getRemoteDescription zudem statt null zu liefern. Pyramid
puffert alle Kandidaten der Gegenseite und reicht sie direkt an die
Verbindung nach. Test: vorher nie verbunden, jetzt ~0,5 s (angerufen)
bzw. ~2,7 s (anrufend), Ton beide Richtungen, Teilen beide Richtungen.
- SDK-Aufrufe in eigener Zone: harmlose Plugin-Fehler (Lautsprecher unter
Windows) werden protokolliert statt durchzuschlagen; Ergebnisse/Fehler
per Completer über die Zonengrenze (sonst ewiges Warten).
- Sprech-Ring auch bei 1:1-Anrufen (Pegel aus WebRTC-Statistiken) – zeigt,
ob das eigene Mikrofon Ton liefert und ob die Gegenseite ankommt; großes
Bild springt nicht mehr bei jedem Sprechwechsel.
- „Neue Nachrichten“ mitten in einer Gruppe (mehrere Nachrichten desselben
Absenders) blieb bis zum erneuten Öffnen stehen: Inline-Trenner jetzt nur
mit Ungelesenem, blendet aus und trägt den Sprungschlüssel. Live-Test.
- „Anruf läuft“-Leiste nicht schon beim Klingeln.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Bernds Anruftest Handy↔PC (2026-10-07):
- Teilen am Handy: App "verkleinerte sich", Anruf danach weg. Ursache:
Android 14+ verlangt vor MediaProjection einen Vordergrunddienst vom Typ
mediaProjection; flutter_webrtc startet keinen, der Manifest-Eintrag
verwies auf eine nicht mehr existierende Klasse. Neu: CallService
(microphone|mediaProjection) + CallForeground: Zustimmung → Dienst
(wartet auf echten startForeground) → Mitschnitt. Emulator-Test (Android
16): mit Fix 1080x2400@30 läuft; Gegenprobe ohne Dienst wirft genau
'Media projections require a foreground service ...'.
- Dienst läuft während jedes Anrufs: Mikrofon bleibt im Hintergrund aktiv,
Benachrichtigung "Anruf läuft" führt zurück. Mikrofon-Typ nur mit
Berechtigung, sonst schmalere Variante statt Dienst-Abbruch.
- Handy hörte nichts: SDK schaltet Sprachanrufe auf die Hörmuschel. Jetzt
Lautsprecher als Standard (wie Discord) + Umschalter in der Anrufleiste.
- LiveKit-Teilen am Handy öffnete den PC-Quellen-Auswähler → System-Dialog.
- Im offenen Chat (Handy) Leiste "Anruf läuft · Zurück".
- Einstellungen → Sprache & Video: Mikrofontest mit Pegel (PC-Diagnose:
das Standardgerät lieferte nur Stille – Voicemeeter/virtuelle Geräte).
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Nach docs/STREAMING_60FPS.md: neue Presets 720p/1080p mit 60 FPS und
hoher Bitrate (5/8 Mbit/s), Preset-Aufloesung+FPS werden jetzt bis in
die Capture-Constraints durchgereicht (vorher blieb der LiveKit-Default
1080p/15 aktiv), 60-FPS-Presets publishen ohne Simulcast mit
DegradationPreference.maintainFramerate (unter Last Aufloesung statt
Frames opfern). contentHint 'motion' ist in flutter_webrtc 1.4.1 aus
Dart nicht setzbar (geprueft) - im Code dokumentiert.
4 neue Vertragstests fuer die Preset-Tabellen.
Co-Authored-By: Claude Fable 5 <[email protected]>