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/pages/new_group/new_group_view.dart b/lib/pages/new_group/new_group_view.dart index 523f3002e..ced178038 100644 --- a/lib/pages/new_group/new_group_view.dart +++ b/lib/pages/new_group/new_group_view.dart @@ -58,7 +58,7 @@ class NewGroupView extends StatelessWidget { Expanded( child: TextField( // #Pangea - maxLength: 32, + maxLength: 64, // Pangea# controller: controller.nameController, autocorrect: false, diff --git a/lib/pages/new_space/new_space_view.dart b/lib/pages/new_space/new_space_view.dart index 23f81b7ab..2b6371b09 100644 --- a/lib/pages/new_space/new_space_view.dart +++ b/lib/pages/new_space/new_space_view.dart @@ -96,7 +96,7 @@ class NewSpaceView extends StatelessWidget { Expanded( child: TextField( // #Pangea - maxLength: 32, + maxLength: 64, // Pangea# controller: controller.nameController, autocorrect: false, diff --git a/lib/pangea/extensions/pangea_room_extension.dart b/lib/pangea/extensions/pangea_room_extension.dart index febd17fa8..4d08f0b62 100644 --- a/lib/pangea/extensions/pangea_room_extension.dart +++ b/lib/pangea/extensions/pangea_room_extension.dart @@ -124,6 +124,8 @@ extension PangeaRoom on Room { Text nameAndRoomTypeIcon([TextStyle? textStyle]) => Text.rich( style: textStyle, + maxLines: 1, + overflow: TextOverflow.ellipsis, TextSpan( children: [ WidgetSpan( diff --git a/lib/pangea/pages/class_settings/class_name_header.dart b/lib/pangea/pages/class_settings/class_name_header.dart index 39adaa126..12a1090f2 100644 --- a/lib/pangea/pages/class_settings/class_name_header.dart +++ b/lib/pangea/pages/class_settings/class_name_header.dart @@ -1,11 +1,9 @@ +import 'package:fluffychat/pages/chat_details/chat_details.dart'; +import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; import 'package:flutter/material.dart'; import 'package:flutter/src/widgets/visibility.dart' as visible; - import 'package:matrix/matrix.dart'; -import 'package:fluffychat/pages/chat_details/chat_details.dart'; -import 'package:fluffychat/pangea/extensions/pangea_room_extension.dart'; - class ClassNameHeader extends StatelessWidget { final Room room; final ChatDetailsController controller; @@ -24,14 +22,14 @@ class ClassNameHeader extends StatelessWidget { style: TextButton.styleFrom( padding: const EdgeInsets.symmetric(horizontal: 25), ), - label: visible.Visibility( + icon: visible.Visibility( visible: controller.showEditNameIcon, child: Icon( Icons.edit, color: Theme.of(context).colorScheme.onBackground, ), ), - icon: room.nameAndRoomTypeIcon( + label: room.nameAndRoomTypeIcon( TextStyle( fontSize: 20, color: Theme.of(context).textTheme.bodyLarge!.color, diff --git a/lib/pangea/utils/set_class_name.dart b/lib/pangea/utils/set_class_name.dart index 1fd2ab66d..430f8ce4c 100644 --- a/lib/pangea/utils/set_class_name.dart +++ b/lib/pangea/utils/set_class_name.dart @@ -27,7 +27,7 @@ void setClassDisplayname(BuildContext context, String? roomId) async { : L10n.of(context)!.changeTheNameOfTheChat, ), content: TextField( - maxLength: 32, + maxLength: 64, controller: textFieldController, ), actions: [ 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() {