diff --git a/lib/src/event.dart b/lib/src/event.dart index 29202bd9..f588970e 100644 --- a/lib/src/event.dart +++ b/lib/src/event.dart @@ -745,6 +745,9 @@ class Event extends MatrixEvent { /// Fetches the event to be rendered, taking into account all the edits and the like. /// It needs a [timeline] for that. Event getDisplayEvent(Timeline timeline) { + if (redacted) { + return this; + } if (hasAggregatedEvents(timeline, RelationshipTypes.Edit)) { // alright, we have an edit final allEditEvents = aggregatedEvents(timeline, RelationshipTypes.Edit) diff --git a/test/event_test.dart b/test/event_test.dart index 645d7b03..71583f63 100644 --- a/test/event_test.dart +++ b/test/event_test.dart @@ -978,6 +978,24 @@ void main() { displayEvent = event.getDisplayEvent( Timeline(events: [event, edit1, edit2, edit3], room: room)); expect(displayEvent.body, 'edit 2'); + event = Event.fromJson({ + 'type': EventTypes.Message, + 'content': { + 'body': 'blah', + 'msgtype': 'm.text', + }, + 'event_id': '\$source', + 'sender': '@alice:example.org', + 'unsigned': { + 'redacted_because': { + 'evnet_id': '\$redact', + 'sender': '@alice:example.org', + }, + }, + }, null); + displayEvent = event.getDisplayEvent( + Timeline(events: [event, edit1, edit2, edit3], room: room)); + expect(displayEvent.body, 'Redacted'); }); test('downloadAndDecryptAttachment', () async { final FILE_BUFF = Uint8List.fromList([0]);