Merge branch 'soru/reply-fallback' into 'master'

better reply fallback stripping

See merge request ChristianPauly/fluffychat-flutter!27
This commit is contained in:
Christian Pauly 2020-02-20 21:00:15 +00:00
commit 47d5b1a369
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