Add HTML render

This commit is contained in:
Sorunome
2020-05-09 11:36:41 +00:00
committed by Christian Pauly
parent eb72198048
commit 3ee1018eb5
12 changed files with 167 additions and 21 deletions

View File

@ -8,6 +8,7 @@ import 'package:link_text/link_text.dart';
import 'package:url_launcher/url_launcher.dart';
import 'matrix.dart';
import 'message_download_content.dart';
import 'html_message.dart';
class MessageContent extends StatelessWidget {
final Event event;
@ -36,13 +37,30 @@ class MessageContent extends StatelessWidget {
case MessageTypes.Video:
case MessageTypes.File:
return MessageDownloadContent(event, textColor);
case MessageTypes.BadEncrypted:
case MessageTypes.Text:
case MessageTypes.Notice:
case MessageTypes.Emote:
if (
Matrix.of(context).renderHtml && !event.redacted &&
event.content['format'] == 'org.matrix.custom.html' &&
event.content['formatted_body'] is String
) {
String html = event.content['formatted_body'];
if (event.messageType == MessageTypes.Emote) {
html = "* $html";
}
return HtmlMessage(
html: html,
textColor: textColor,
);
}
// else we fall through to the normal message rendering
continue textmessage;
case MessageTypes.BadEncrypted:
case MessageTypes.Reply:
case MessageTypes.Location:
case MessageTypes.None:
case MessageTypes.Notice:
case MessageTypes.Emote:
textmessage:
default:
if (event.content['msgtype'] == Matrix.callNamespace) {
return RaisedButton(
@ -76,5 +94,6 @@ class MessageContent extends StatelessWidget {
),
);
}
return Container(); // else flutter analyze complains
}
}