Bernds Test mit der PC-Testinstanz: - ✓✓ erschien erst nach erneutem Öffnen: eine Lesebestätigung ohne neue Nachricht zeichnete nichts neu (Raum-Update kommt im SDK vor der Bestätigung). Jetzt nach jedem Sync Fingerabdruck der Lesepositionen prüfen und bei Änderung neu zeichnen. - Einladung: Chat zeigte leeren Verlauf, Annehmen ging nur in der Liste, und danach blieb der Chat leer bis zum App-Neustart. Jetzt Annehmen/Ablehnen direkt im Chat; Annehmen wartet auf den Beitritts-Sync, der Verlauf baut sich bei invite→join selbst neu auf. - Trenner blieb stehen, wenn nach dem Öffnen/Zurückkommen nicht gescrollt wurde. Jetzt: neueste Nachrichten sichtbar (≤ halbe Bildschirmhöhe hochgescrollt) → nach 6 s weich ausblenden, auch ohne Scrollen. - Live-Test mit beiden Testkonten (Gegenprobe: ohne Fix rot) in scripts/test.ps1 -Ui; Testlauf-Sperre erkennt nur noch eigene Testläufe. Co-Authored-By: Claude Opus 5.5 <[email protected]>
40 lines
1.9 KiB
Dart
40 lines
1.9 KiB
Dart
import 'dart:async';
|
|
|
|
import 'package:flutter/material.dart' hide Visibility;
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'package:matrix/matrix.dart';
|
|
// SpaceChild wird vom matrix-Paket nicht öffentlich exportiert.
|
|
// ignore: implementation_imports
|
|
import 'package:matrix/src/utils/space_child.dart';
|
|
import 'package:pyramid/core/app_state.dart';
|
|
import 'package:pyramid/core/appearance.dart';
|
|
import 'package:pyramid/core/matrix_client.dart';
|
|
import 'package:pyramid/core/notification_content.dart' show notificationBody;
|
|
import 'package:pyramid/core/theme.dart';
|
|
import 'package:pyramid/features/rooms/rooms_provider.dart';
|
|
import 'package:pyramid/features/chat/chat_provider.dart' show acceptInvite;
|
|
import 'package:pyramid/features/call_ui/mini_call_widget.dart';
|
|
import 'package:pyramid/features/call_signaling/call_signaling_service.dart';
|
|
import 'package:pyramid/features/voice_channel/voice_channel_service.dart';
|
|
import 'package:pyramid/features/rooms/user_panel.dart';
|
|
import 'package:pyramid/features/spaces/space_admin_dialog.dart';
|
|
import 'package:pyramid/utils/date_labels.dart';
|
|
import 'package:pyramid/widgets/create_join_dialog.dart';
|
|
import 'package:pyramid/widgets/hover_region.dart';
|
|
import 'package:pyramid/widgets/mxc_image.dart';
|
|
import 'package:pyramid/widgets/new_dm_dialog.dart';
|
|
import 'package:pyramid/widgets/spring_press.dart' show SpringBump;
|
|
|
|
// ─── Helpers ──────────────────────────────────────────────────────────────────
|
|
|
|
|
|
part 'panel/rooms_panel_core.dart';
|
|
part 'panel/rooms_header.dart';
|
|
part 'panel/rooms_space_invite.dart';
|
|
part 'panel/rooms_space_list.dart';
|
|
part 'panel/rooms_list.dart';
|
|
part 'panel/rooms_voice.dart';
|
|
part 'panel/rooms_invite_item.dart';
|
|
part 'panel/rooms_shared.dart';
|
|
part 'panel/rooms_mobile_tile.dart';
|