diff --git a/CHANGES.md b/CHANGES.md index d9bda64674..7177708100 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,3 +1,10 @@ +## Changes in 1.8.5 (2022-03-09) + +🐛 Bugfixes + +- Room: Only render missing messages for m.room.message types ([#5783](https://github.com/vector-im/element-ios/issues/5783)) + + ## Changes in 1.8.4 (2022-03-08) 🙌 Improvements diff --git a/Config/AppVersion.xcconfig b/Config/AppVersion.xcconfig index dc08643846..b0402b34e3 100644 --- a/Config/AppVersion.xcconfig +++ b/Config/AppVersion.xcconfig @@ -15,5 +15,5 @@ // // Version -MARKETING_VERSION = 1.8.4 -CURRENT_PROJECT_VERSION = 1.8.4 +MARKETING_VERSION = 1.8.5 +CURRENT_PROJECT_VERSION = 1.8.5 diff --git a/Riot/Utils/EventFormatter.m b/Riot/Utils/EventFormatter.m index e1dbffbb67..64bd0f5d54 100644 --- a/Riot/Utils/EventFormatter.m +++ b/Riot/Utils/EventFormatter.m @@ -66,27 +66,30 @@ - (void)initDateTimeFormatters - (NSAttributedString *)attributedStringFromEvent:(MXEvent *)event withRoomState:(MXRoomState *)roomState error:(MXKEventFormatterError *)error { NSAttributedString *string = [self unsafeAttributedStringFromEvent:event withRoomState:roomState error:error]; - - // If we cannot create attributed string, but the message is nevertheless meant for display (e.g. not an edit event), show generic error - // instead of a missing message on a timeline. - if (!string && [self shouldDisplayEvent:event]) + if (!string) { - MXLogError(@"[EventFormatter]: Cannot format string for displayable event: %@, type: %@, msgtype: %@, has room state: %d, members: %lu, error: %lu", + MXLogDebug(@"[EventFormatter]: No attributed string for event: %@, type: %@, msgtype: %@, has room state: %d, members: %lu, error: %lu", event.eventId, event.type, event.content[@"msgtype"], roomState != nil, roomState.membersCount.members, *error); - string = [[NSAttributedString alloc] initWithString:[VectorL10n noticeErrorUnformattableEvent] attributes:@{ - NSFontAttributeName: [self encryptedMessagesTextFont] - }]; + + // If we cannot create attributed string, but the message is nevertheless meant for display, show generic error + // instead of a missing message on a timeline. + if ([self shouldDisplayEvent:event]) { + MXLogError(@"[EventFormatter]: Missing attributed string for message event: %@", event.eventId); + string = [[NSAttributedString alloc] initWithString:[VectorL10n noticeErrorUnformattableEvent] attributes:@{ + NSFontAttributeName: [self encryptedMessagesTextFont] + }]; + } } return string; } - (BOOL)shouldDisplayEvent:(MXEvent *)event { - return [self.eventTypesFilterForMessages containsObject:event.type] + return event.eventType == MXEventTypeRoomMessage && !event.isEditEvent && !event.isRedactedEvent; }