diff --git a/lib/pages/chat/events/message.dart b/lib/pages/chat/events/message.dart index 413bab73f..d7bba727d 100644 --- a/lib/pages/chat/events/message.dart +++ b/lib/pages/chat/events/message.dart @@ -97,7 +97,8 @@ class Message extends StatelessWidget { EventTypes.Sticker, EventTypes.Encrypted, }.contains(previousEvent!.type) && - previousEvent!.senderId == event.senderId; + previousEvent!.senderId == event.senderId && + previousEvent!.originServerTs.sameEnvironment(event.originServerTs); final textColor = ownMessage ? Theme.of(context).colorScheme.onPrimary diff --git a/lib/pages/chat/events/message_content.dart b/lib/pages/chat/events/message_content.dart index 2823c0411..c3742efcb 100644 --- a/lib/pages/chat/events/message_content.dart +++ b/lib/pages/chat/events/message_content.dart @@ -115,7 +115,10 @@ class MessageContent extends StatelessWidget { ); case MessageTypes.Sticker: if (event.redacted) continue textmessage; - return Sticker(event); + return Sticker( + event, + borderRadius: borderRadius, + ); case CuteEventContent.eventType: return CuteContent(event); case MessageTypes.Audio: diff --git a/lib/pages/chat/events/sticker.dart b/lib/pages/chat/events/sticker.dart index 016ebdb50..e0e116841 100644 --- a/lib/pages/chat/events/sticker.dart +++ b/lib/pages/chat/events/sticker.dart @@ -9,8 +9,9 @@ import 'image_bubble.dart'; class Sticker extends StatefulWidget { final Event event; + final BorderRadius borderRadius; - const Sticker(this.event, {super.key}); + const Sticker(this.event, {required this.borderRadius, super.key}); @override StickerState createState() => StickerState(); @@ -26,6 +27,7 @@ class StickerState extends State { width: 256, height: 256, fit: BoxFit.contain, + borderRadius: widget.borderRadius, onTap: () { setState(() => animated = true); showOkAlertDialog(