diff --git a/lib/pages/chat/events/audio_player.dart b/lib/pages/chat/events/audio_player.dart index 536e5f61b..2f22bd3f3 100644 --- a/lib/pages/chat/events/audio_player.dart +++ b/lib/pages/chat/events/audio_player.dart @@ -12,6 +12,7 @@ import 'package:opus_caf_converter_dart/opus_caf_converter_dart.dart'; import 'package:path_provider/path_provider.dart'; import 'package:fluffychat/config/app_config.dart'; +import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pangea/toolbar/widgets/message_audio_card.dart'; import 'package:fluffychat/pangea/toolbar/widgets/message_selection_overlay.dart'; import 'package:fluffychat/utils/error_reporter.dart'; @@ -30,6 +31,7 @@ class AudioPlayerWidget extends StatefulWidget { final Function(bool)? setIsPlayingAudio; final double padding; final MessageOverlayController? overlayController; + final ChatController? chatController; // Pangea# static String? currentId; @@ -53,6 +55,7 @@ class AudioPlayerWidget extends StatefulWidget { this.setIsPlayingAudio, this.padding = 12.0, this.overlayController, + this.chatController, // Pangea# super.key, }); @@ -79,6 +82,10 @@ class AudioPlayerState extends State { MatrixFile? matrixFile; File? audioFile; + // #Pangea + StreamSubscription? _onShowToolbar; + // Pangea# + @override void dispose() { if (audioPlayer?.playerState.playing == true) { @@ -88,6 +95,9 @@ class AudioPlayerState extends State { onDurationChanged?.cancel(); onPlayerStateChanged?.cancel(); onPlayerError?.cancel(); + // #Pangea + _onShowToolbar?.cancel(); + // Pangea# super.dispose(); } @@ -345,6 +355,13 @@ class AudioPlayerState extends State { ? _playAction() : _downloadAction(); } + + _onShowToolbar = widget.chatController?.showToolbarStream.stream + .where((eventID) => eventID == widget.event?.eventId) + .listen((eventID) { + audioPlayer?.pause(); + audioPlayer?.seek(Duration.zero); + }); // Pangea# } diff --git a/lib/pages/chat/events/message_content.dart b/lib/pages/chat/events/message_content.dart index acf3a6341..e6805f39b 100644 --- a/lib/pages/chat/events/message_content.dart +++ b/lib/pages/chat/events/message_content.dart @@ -209,6 +209,9 @@ class MessageContent extends StatelessWidget { event, color: textColor, fontSize: fontSize, + // #Pangea + chatController: controller, + // Pangea# ); } return MessageDownloadContent(event, textColor); diff --git a/lib/pages/chat_list/chat_list.dart b/lib/pages/chat_list/chat_list.dart index ce7e2b724..c16336e33 100644 --- a/lib/pages/chat_list/chat_list.dart +++ b/lib/pages/chat_list/chat_list.dart @@ -42,7 +42,6 @@ import '../../widgets/matrix.dart'; import 'package:fluffychat/utils/tor_stub.dart' if (dart.library.html) 'package:tor_detector_web/tor_detector_web.dart'; - enum SelectMode { normal, share,