mirror of
https://github.com/vector-im/element-ios.git
synced 2024-09-29 07:42:40 +00:00
Make app use MXRoomMemberEventContent instead of directly accessing JSON dictionnary values. Thanks to the JSON parsing, [NSNull null] values becomes nil and there is no more crash.
This commit is contained in:
parent
2f872da688
commit
732ecce448
1 changed files with 8 additions and 5 deletions
|
@ -413,15 +413,18 @@ static MatrixHandler *sharedHandler = nil;
|
|||
|
||||
// Presently only membership change, display name change and avatar change are expected
|
||||
|
||||
MXRoomMemberEventContent *content = [MXRoomMemberEventContent modelFromJSON:message.content];
|
||||
|
||||
// Check whether this is a displayname change
|
||||
if (message.prevContent) {
|
||||
NSString *prevDisplayname = message.prevContent[@"displayname"];
|
||||
NSString *displayname = message.content[@"displayname"];
|
||||
MXRoomMemberEventContent *prevContent = [MXRoomMemberEventContent modelFromJSON:message.prevContent];
|
||||
NSString *prevDisplayname = prevContent.displayname;
|
||||
NSString *displayname = content.displayname;
|
||||
if (prevDisplayname && displayname && [displayname isEqualToString:prevDisplayname] == NO) {
|
||||
displayText = [NSString stringWithFormat:@"%@ changed their display name from %@ to %@", message.userId, prevDisplayname, displayname];
|
||||
} else {
|
||||
NSString *prevAvatar = message.prevContent[@"avatar_url"];
|
||||
NSString *avatar = message.content[@"avatar_url"];
|
||||
NSString *prevAvatar = prevContent.avatarUrl;
|
||||
NSString *avatar = content.avatarUrl;
|
||||
if (prevAvatar && avatar && [avatar isEqualToString:prevAvatar] == NO) {
|
||||
displayText = [NSString stringWithFormat:@"%@ changed their picture profile", memberDisplayName];
|
||||
}
|
||||
|
@ -430,7 +433,7 @@ static MatrixHandler *sharedHandler = nil;
|
|||
|
||||
if (displayText == nil) {
|
||||
// Consider here a membership change by default
|
||||
NSString* membership = message.content[@"membership"];
|
||||
NSString* membership = content.membership;
|
||||
|
||||
if ([membership isEqualToString:@"invite"]) {
|
||||
displayText = [NSString stringWithFormat:@"%@ invited %@", memberDisplayName, targetDisplayName];
|
||||
|
|
Loading…
Reference in a new issue