better reply fallback stripping

This commit is contained in:
Sorunome 2020-02-20 20:45:38 +01:00
parent ff02c581d1
commit 8b0bcde6ae
No known key found for this signature in database
GPG key ID: B19471D07FC9BE9C
5 changed files with 8 additions and 10 deletions

View file

@ -177,7 +177,7 @@ class ChatListItem extends StatelessWidget {
)
: Text(
room.lastEvent.getLocalizedBody(context,
withSenderNamePrefix: true, hideQuotes: true),
withSenderNamePrefix: true, hideReply: true),
maxLines: 1,
overflow: TextOverflow.ellipsis,
style: TextStyle(

View file

@ -239,7 +239,7 @@ class MatrixState extends State<Matrix> {
// Calculate the body
final String body = event.getLocalizedBody(context,
withSenderNamePrefix: true, hideQuotes: true);
withSenderNamePrefix: true, hideReply: true);
// The person object for the android message style notification
final person = Person(

View file

@ -135,7 +135,7 @@ class MessageContent extends StatelessWidget {
case MessageTypes.Notice:
case MessageTypes.Emote:
return LinkText(
text: event.getLocalizedBody(context, hideQuotes: true),
text: event.getLocalizedBody(context, hideReply: true),
textStyle: TextStyle(
color: textColor,
decoration: event.redacted ? TextDecoration.lineThrough : null,

View file

@ -36,7 +36,7 @@ class ReplyContent extends StatelessWidget {
),
Text(
replyEvent?.getLocalizedBody(context,
withSenderNamePrefix: false, hideQuotes: true) ??
withSenderNamePrefix: false, hideReply: true) ??
"",
overflow: TextOverflow.ellipsis,
maxLines: 1,

View file

@ -13,7 +13,7 @@ extension LocalizedBody on Event {
};
String getLocalizedBody(BuildContext context,
{bool withSenderNamePrefix = false, bool hideQuotes = false}) {
{bool withSenderNamePrefix = false, bool hideReply = false}) {
if (this.redacted) {
return I18n.of(context)
.removedBy(redactedBecause.sender.calcDisplayname());
@ -209,11 +209,9 @@ extension LocalizedBody on Event {
localizedBody = I18n.of(context).unknownEvent(this.typeKey);
}
// Hide quotes
if (hideQuotes) {
List<String> lines = localizedBody.split("\n");
lines.removeWhere((s) => s.startsWith("> ") || s.isEmpty);
localizedBody = lines.join("\n");
// Hide reply fallback
if (hideReply) {
localizedBody = localizedBody.replaceFirst(RegExp(r'^>( \*)? <@[a-zA-Z0-9-.=_\/]+:[^>]+>[^\n]+\r?\n(> [^\n]+\r?\n)*\r?\n'), "");
}
// Add the sender name prefix