From 4739ea42fa983070752392adee8eea54365e2233 Mon Sep 17 00:00:00 2001 From: krille-chan Date: Wed, 21 May 2025 19:09:58 +0200 Subject: [PATCH] refactor: Always use HtmlMessage --- lib/pages/chat/events/message_content.dart | 79 ++++++---------------- 1 file changed, 21 insertions(+), 58 deletions(-) diff --git a/lib/pages/chat/events/message_content.dart b/lib/pages/chat/events/message_content.dart index 0b02001d6..7604fb113 100644 --- a/lib/pages/chat/events/message_content.dart +++ b/lib/pages/chat/events/message_content.dart @@ -2,7 +2,6 @@ import 'dart:math'; import 'package:flutter/material.dart'; -import 'package:flutter_linkify/flutter_linkify.dart'; import 'package:matrix/matrix.dart'; import 'package:fluffychat/l10n/l10n.dart'; @@ -180,46 +179,6 @@ class MessageContent extends StatelessWidget { textColor: textColor, linkColor: linkColor, ); - - case MessageTypes.Text: - case MessageTypes.Notice: - case MessageTypes.Emote: - if (AppConfig.renderHtml && - !event.redacted && - event.isRichMessage) { - var html = event.formattedText; - if (event.messageType == MessageTypes.Emote) { - html = '* $html'; - } - return Padding( - padding: const EdgeInsets.symmetric( - horizontal: 16, - vertical: 8, - ), - child: HtmlMessage( - html: html, - textColor: textColor, - room: event.room, - fontSize: - AppConfig.fontSizeFactor * AppConfig.messageFontSize, - linkStyle: TextStyle( - color: linkColor, - fontSize: - AppConfig.fontSizeFactor * AppConfig.messageFontSize, - decoration: TextDecoration.underline, - decorationColor: linkColor, - ), - onOpen: (url) => UrlLauncher(context, url.url).launchUrl(), - eventId: event.eventId, - checkboxCheckedEvents: event.aggregatedEvents( - timeline, - EventCheckboxRoomExtension.relationshipType, - ), - ), - ); - } - // else we fall through to the normal message rendering - continue textmessage; case MessageTypes.BadEncrypted: case EventTypes.Encrypted: return _ButtonContent( @@ -264,6 +223,9 @@ class MessageContent extends StatelessWidget { } } continue textmessage; + case MessageTypes.Text: + case MessageTypes.Notice: + case MessageTypes.Emote: case MessageTypes.None: textmessage: default: @@ -291,34 +253,35 @@ class MessageContent extends StatelessWidget { }, ); } - final bigEmotes = event.onlyEmotes && - event.numberEmotes > 0 && - event.numberEmotes <= 3; + var html = AppConfig.renderHtml && event.isRichMessage + ? event.formattedText + : event.body; + if (event.messageType == MessageTypes.Emote) { + html = '* $html'; + } return Padding( padding: const EdgeInsets.symmetric( horizontal: 16, vertical: 8, ), - child: Linkify( - text: event.calcLocalizedBodyFallback( - MatrixLocals(L10n.of(context)), - hideReply: true, - ), - textScaleFactor: MediaQuery.textScalerOf(context).scale(1), - style: TextStyle( - color: textColor, - fontSize: bigEmotes ? fontSize * 5 : fontSize, - decoration: - event.redacted ? TextDecoration.lineThrough : null, - ), - options: const LinkifyOptions(humanize: false), + child: HtmlMessage( + html: html, + textColor: textColor, + room: event.room, + fontSize: AppConfig.fontSizeFactor * AppConfig.messageFontSize, linkStyle: TextStyle( color: linkColor, - fontSize: fontSize, + fontSize: + AppConfig.fontSizeFactor * AppConfig.messageFontSize, decoration: TextDecoration.underline, decorationColor: linkColor, ), onOpen: (url) => UrlLauncher(context, url.url).launchUrl(), + eventId: event.eventId, + checkboxCheckedEvents: event.aggregatedEvents( + timeline, + EventCheckboxRoomExtension.relationshipType, + ), ), ); }