From e6d2a6834871ddf7caa6cda223301a39498a4160 Mon Sep 17 00:00:00 2001 From: ggurdin Date: Fri, 27 Jun 2025 10:40:39 -0400 Subject: [PATCH] chore: don't interupt message audio with button click sound --- lib/pages/chat/events/audio_player.dart | 47 +++++++++++-------- .../toolbar/widgets/overlay_message.dart | 4 +- .../toolbar/widgets/select_mode_buttons.dart | 2 +- 3 files changed, 31 insertions(+), 22 deletions(-) diff --git a/lib/pages/chat/events/audio_player.dart b/lib/pages/chat/events/audio_player.dart index 6728e69c0..ebecd12c0 100644 --- a/lib/pages/chat/events/audio_player.dart +++ b/lib/pages/chat/events/audio_player.dart @@ -209,28 +209,37 @@ class AudioPlayerState extends State { // #Pangea // if (!kIsWeb) { - if (!kIsWeb && matrixFile != null) { - // Pangea# - final tempDir = await getTemporaryDirectory(); - final fileName = Uri.encodeComponent( - // #Pangea - // widget.event.attachmentOrThumbnailMxcUrl()!.pathSegments.last, - widget.event!.attachmentOrThumbnailMxcUrl()!.pathSegments.last, + if (!kIsWeb) { + if (matrixFile != null) { // Pangea# - ); - file = File('${tempDir.path}/${fileName}_${matrixFile.name}'); - - await file.writeAsBytes(matrixFile.bytes); - - if (Platform.isIOS && - matrixFile.mimeType.toLowerCase() == 'audio/ogg') { - Logs().v('Convert ogg audio file for iOS...'); - final convertedFile = File('${file.path}.caf'); - if (await convertedFile.exists() == false) { - OpusCaf().convertOpusToCaf(file.path, convertedFile.path); + final tempDir = await getTemporaryDirectory(); + final fileName = Uri.encodeComponent( + // #Pangea + // widget.event.attachmentOrThumbnailMxcUrl()!.pathSegments.last, + widget.event!.attachmentOrThumbnailMxcUrl()!.pathSegments.last, + // Pangea# + ); + file = File('${tempDir.path}/${fileName}_${matrixFile.name}'); + + await file.writeAsBytes(matrixFile.bytes); + + if (Platform.isIOS && + matrixFile.mimeType.toLowerCase() == 'audio/ogg') { + Logs().v('Convert ogg audio file for iOS...'); + final convertedFile = File('${file.path}.caf'); + if (await convertedFile.exists() == false) { + OpusCaf().convertOpusToCaf(file.path, convertedFile.path); + } + file = convertedFile; } - file = convertedFile; + // #Pangea + } else if (widget.matrixFile != null) { + final tempDir = await getTemporaryDirectory(); + + file = File('${tempDir.path}/${widget.matrixFile!.name}'); + await file.writeAsBytes(widget.matrixFile!.bytes); } + // Pangea# } setState(() { diff --git a/lib/pangea/toolbar/widgets/overlay_message.dart b/lib/pangea/toolbar/widgets/overlay_message.dart index fc0543395..e678ac1ad 100644 --- a/lib/pangea/toolbar/widgets/overlay_message.dart +++ b/lib/pangea/toolbar/widgets/overlay_message.dart @@ -206,8 +206,8 @@ class OverlayMessage extends StatelessWidget { text: overlayController .transcription!.transcript.text, textLanguage: PLanguageStore.byLangCode( - pangeaMessageEvent! - .messageDisplayLangCode, + overlayController + .transcription!.langCode, ) ?? LanguageModel.unknown, style: AppConfig.messageTextStyle( diff --git a/lib/pangea/toolbar/widgets/select_mode_buttons.dart b/lib/pangea/toolbar/widgets/select_mode_buttons.dart index f2f561361..97e334bfb 100644 --- a/lib/pangea/toolbar/widgets/select_mode_buttons.dart +++ b/lib/pangea/toolbar/widgets/select_mode_buttons.dart @@ -492,7 +492,7 @@ class SelectModeButtonsState extends State { borderRadius: BorderRadius.circular(20), color: Theme.of(context).colorScheme.primaryContainer, onPressed: () => _updateMode(mode), - playSound: true, + playSound: mode != SelectMode.audio, colorFactor: Theme.of(context).brightness == Brightness.light ? 0.55 : 0.3,