diff --git a/lib/pages/chat/events/message_content.dart b/lib/pages/chat/events/message_content.dart index f04296d38..41997afea 100644 --- a/lib/pages/chat/events/message_content.dart +++ b/lib/pages/chat/events/message_content.dart @@ -344,9 +344,6 @@ class MessageContent extends StatelessWidget { MatrixLocals(L10n.of(context)!), hideReply: true, ); - toolbarController?.toolbar?.textSelection.setMessageText( - messageText, - ); return SelectableLinkify( onSelectionChanged: (selection, cause) { if (cause == SelectionChangedCause.longPress && @@ -363,8 +360,7 @@ class MessageContent extends StatelessWidget { .onTextSelection(selection); }, onTap: () => toolbarController?.showToolbar(context), - text: toolbarController?.toolbar?.textSelection.messageText ?? - messageText, + text: messageText, contextMenuBuilder: (context, state) => (toolbarController?.highlighted ?? false) ? const SizedBox.shrink() diff --git a/lib/pangea/widgets/chat/message_toolbar.dart b/lib/pangea/widgets/chat/message_toolbar.dart index 2f6d82ef1..142a27227 100644 --- a/lib/pangea/widgets/chat/message_toolbar.dart +++ b/lib/pangea/widgets/chat/message_toolbar.dart @@ -188,10 +188,13 @@ class MessageToolbarState extends State { return; } - setState(() { - currentMode = newMode; - updatingMode = true; - }); + if (mounted) { + setState(() { + currentMode = newMode; + updatingMode = true; + }); + } + if (!subscribed) { toolbarContent = MessageUnsubscribedCard( languageTool: newMode.title(context), @@ -221,9 +224,11 @@ class MessageToolbarState extends State { break; } } - setState(() { - updatingMode = false; - }); + if (mounted) { + setState(() { + updatingMode = false; + }); + } } void showTranslation() { @@ -289,7 +294,7 @@ class MessageToolbarState extends State { final bool autoplay = MatrixState.pangeaController.pStoreService.read( PLocalKey.autoPlayMessages, ) ?? - true; + false; if (widget.pangeaMessageEvent.isAudioMessage) { updateMode(MessageMode.speechToText); diff --git a/lib/pangea/widgets/chat/message_translation_card.dart b/lib/pangea/widgets/chat/message_translation_card.dart index f797cc3b4..b1bae20e5 100644 --- a/lib/pangea/widgets/chat/message_translation_card.dart +++ b/lib/pangea/widgets/chat/message_translation_card.dart @@ -113,7 +113,9 @@ class MessageTranslationCardState extends State { l2Code = MatrixState.pangeaController.languageController.activeL2Code( roomID: widget.messageEvent.room.id, ); - setState(() {}); + if (mounted) { + setState(() {}); + } loadTranslation(() async { if (widget.selection.selectedText != null) { diff --git a/lib/pangea/widgets/igc/pangea_rich_text.dart b/lib/pangea/widgets/igc/pangea_rich_text.dart index 43416e006..262f37824 100644 --- a/lib/pangea/widgets/igc/pangea_rich_text.dart +++ b/lib/pangea/widgets/igc/pangea_rich_text.dart @@ -61,9 +61,11 @@ class PangeaRichTextState extends State { widget.toolbarController?.toolbar?.textSelection.setMessageText( newTextSpan, ); - setState(() { - textSpan = newTextSpan; - }); + if (mounted) { + setState(() { + textSpan = newTextSpan; + }); + } } void setTextSpan() {