Bernd SteckmeisterandClaude Opus 5.5 441cc6ef54 fix(calls): Bildschirmübertragung ohne Absturz, Lautsprecher, Mikrofon im Hintergrund, zurück in den Anruf
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]>
2026-10-08 00:01:29 +02:00
2026-10-07 22:13:57 +02:00

Pyramid

Pyramid ist ein eigenständiger Matrix-Client (Flutter), kein Fork von FluffyChat oder Element. Er läuft gegen den selbst gehosteten Homeserver steggi-matrix.work (Continuwuity) und ist bei echten Nutzern im Einsatz – Stabilität und Datensicherheit haben Vorrang vor Feature-Tempo.

Funktionsumfang

  • Matrix-Chat mit Timeline, Reply, Medien, Link-Vorschauen, lokaler Volltextsuche über entschlüsselte Nachrichten (server-seitige Suche funktioniert bei E2EE nicht)
  • Ende-zu-Ende-Verschlüsselung (vodozemac/Olm/Megolm) inkl. Key-Backup
  • Sprach-/Video-Calls und Bildschirmübertragung über LiveKit (wss://livekit.steggi-matrix.work)
  • Push-Benachrichtigungen mit clientseitiger Entschlüsselung auch bei gekillter App (FCM + Sygnal, siehe docs/NOTIFICATIONS.md)
  • Größenverstellbares Panel-Layout (Rooms/Chat/Members) statt starrer Tabs

Build

Voraussetzung: Flutter (stable channel, siehe environment.sdk in pubspec.yaml für die unterstützte Dart-Version).

flutter pub get
flutter run -d windows   # schnellster Praxistest während der Entwicklung
flutter analyze          # muss sauber bleiben
pwsh scripts/test.ps1    # Analyse + Tests (-Live, -Bench, -All: siehe docs/TESTS_UND_BENCHMARKS.md)

Unterstützte Zielplattformen: Android, Windows, Linux, iOS, macOS (Ordner android/, windows/, linux/, ios/, macos/ sind Standard-Flutter-Projekte). Release-Build (signiert, Windows + Android): scripts/release.ps1.

Projektstruktur

lib/
  core/        Matrix-Client, Auth, VoIP-Manager, Storage, App-State
  features/
    auth/      Login, Server-Auswahl
    rooms/     Raumliste, Spaces
    chat/      Timeline, Composer, Medien, Dokumentenvorschau
    call/      LiveKit-Calls, Voice-Channel, Mini-Call-Widget
    members/   Mitgliederliste/-panel
    settings/  Einstellungen
  layout/      Panel-Layout (resizable)
  widgets/     geteilte UI-Bausteine
  utils/       Hilfsfunktionen

Weiterführende Dokumentation

  • CLAUDE.md – Arbeitsregeln und Infrastruktur für die Zusammenarbeit mit Claude
  • ROADMAP.md / PROGRESS.md – aktueller Stand und nächste Schritte
  • docs/TESTS_UND_BENCHMARKS.md – Tests, Live-Tests, Benchmarks (ein Befehl)
  • docs/NOTIFICATIONS.md – Push-Architektur (native Anzeige vs. Hintergrund-Entschlüsselung)
  • docs/matrix-sdk/ – Hinweise zum verwendeten Matrix-SDK
S
Description
Pyramid – Flutter Matrix Client
Readme
5 MiB
2026-04-28 21:54:27 +02:00
Languages
Dart 85%
JavaScript 5%
Kotlin 3%
CSS 2.9%
C++ 1.5%
Other 2.5%