5bf45a9366
Gleiche Technik wie bei settings_modal.dart: reine Verschiebung per Dart part/part-of, keine Logikänderung. message_group.dart schrumpft von 2775 auf 30 Zeilen (nur noch Bibliothekskopf). Verifiziert per automatisiertem Blockvergleich gegen das Original und flutter analyze (Baseline unverändert). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
31 lines
1.2 KiB
Dart
31 lines
1.2 KiB
Dart
import 'dart:convert';
|
|
import 'dart:io';
|
|
|
|
import 'package:collection/collection.dart';
|
|
import 'package:flutter/gestures.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:path_provider/path_provider.dart';
|
|
import 'package:pyramid/features/chat/media_player.dart';
|
|
import 'package:flutter/services.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
import 'package:matrix/matrix.dart';
|
|
import 'package:pyramid/core/matrix_client.dart';
|
|
import 'package:pyramid/core/media_cache.dart';
|
|
import 'package:pyramid/core/theme.dart';
|
|
import 'package:pyramid/features/chat/emoji_picker.dart';
|
|
import 'package:flutter_svg/flutter_svg.dart';
|
|
import 'package:pyramid/features/chat/document_viewer.dart';
|
|
import 'package:pyramid/features/chat/media_viewer.dart';
|
|
import 'package:pyramid/features/chat/reaction_service.dart';
|
|
import 'package:pyramid/utils/gif_favorite_service.dart';
|
|
import 'package:pyramid/widgets/mxc_image.dart';
|
|
import 'package:url_launcher/url_launcher.dart';
|
|
|
|
part 'message/message_group_core.dart';
|
|
part 'message/message_text.dart';
|
|
part 'message/message_link_preview.dart';
|
|
part 'message/message_media.dart';
|
|
part 'message/message_reactions.dart';
|
|
part 'message/message_actions.dart';
|
|
part 'message/message_shared.dart';
|