diff --git a/Vector/Utils/EventFormatter.m b/Vector/Utils/EventFormatter.m index 02dd9ea58..0a8e3e87a 100644 --- a/Vector/Utils/EventFormatter.m +++ b/Vector/Utils/EventFormatter.m @@ -58,6 +58,31 @@ }; } +#pragma mark event sender info + +- (NSString*)senderAvatarUrlForEvent:(MXEvent*)event withRoomState:(MXRoomState*)roomState +{ + // Override this method to ignore the identicons defined by default in matrix kit. + + // Consider first the avatar url defined in provided room state (Note: this room state is supposed to not take the new event into account) + NSString *senderAvatarUrl = [roomState memberWithUserId:event.sender].avatarUrl; + + // Check whether this avatar url is updated by the current event (This happens in case of new joined member) + if ([event.content[@"avatar_url"] length]) + { + // Use the actual avatar + senderAvatarUrl = event.content[@"avatar_url"]; + } + + // We ignore non mxc avatar url (The identicons are removed here). + if (senderAvatarUrl && [senderAvatarUrl hasPrefix:kMXContentUriScheme] == NO) + { + senderAvatarUrl = nil; + } + + return senderAvatarUrl; +} + #pragma mark - Timestamp formatting