Merge branch 'feature/6173_fix_status_events_create_room' into 'develop'

MESSENGER-6173 fix room creation status events not showing

See merge request bwmessenger/bundesmessenger/bundesmessenger-ios!383
This commit is contained in:
JanNiklas Grabowski
2024-07-03 15:31:05 +00:00
3 changed files with 23 additions and 18 deletions

View File

@@ -396,14 +396,16 @@ NSString *const URLPreviewDidUpdateNotification = @"URLPreviewDidUpdateNotificat
break;
// bwi #5575 ACL events and membership events should be displayed (and could be filtered later)
// this does not work at the moment but i'll leave it commented out for later reevaluation
// case RoomBubbleCellDataTagACL:
// case RoomBubbleCellDataTagRoomCreateConfiguration:
// if (!self.collapsedAttributedTextMessage) {
// hasNoDisplay = NO;
// } else {
// hasNoDisplay = [super hasNoDisplay];
// }
// break;
// case RoomBubbleCellDataTagACL:
// hasNoDisplay = NO;
// break;
// case RoomBubbleCellDataTagRoomCreateConfiguration:
// if (!self.collapsedAttributedTextMessage) {
// hasNoDisplay = NO;
// } else {
// hasNoDisplay = [super hasNoDisplay];
// }
// break;
default:
hasNoDisplay = [super hasNoDisplay];
break;

View File

@@ -413,6 +413,9 @@ static NSString *const kEventFormatterTimeFormat = @"HH:mm";
MXEvent *roomCreateEvent = [events filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"type == %@", kMXEventTypeStringRoomCreate]].firstObject;
MXEvent *callInviteEvent = [events filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"type == %@", kMXEventTypeStringCallInvite]].firstObject;
MXEvent *aclEvent = [events filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"type == %@", kMXEventTypeStringRoomServerACL]].firstObject;
MXEvent *roomMemberEvent = [events filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"type == %@", kMXEventTypeStringRoomMember]].firstObject;
MXEvent *joinRuleEvent = [events filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"type == %@", kMXEventTypeStringRoomJoinRules]].firstObject;
if (roomCreateEvent)
{
@@ -448,7 +451,7 @@ static NSString *const kEventFormatterTimeFormat = @"HH:mm";
// TODO: Build a complete summary like Riot-web
// bwi #5575 correct texts for collapsed acl events
else if (events[0].eventType == MXEventTypeRoomMember || events[0].eventType == MXEventTypeRoomServerACL)
else if (aclEvent || roomMemberEvent || joinRuleEvent)
{
CollapsedACLEvents eventsType = [[FederationEventHelper shared] isCollapsedACLEventsWithEvents:events];
switch (eventsType) {
@@ -463,6 +466,7 @@ static NSString *const kEventFormatterTimeFormat = @"HH:mm";
break;
default:
displayText = [VectorL10n eventFormatterMemberUpdates:events.count];
break;
}
}
}

View File

@@ -58,22 +58,21 @@ import Foundation
}
@objc func isCollapsedACLEvents( events: [MXEvent]) -> CollapsedACLEvents {
var aclEventCount = 0, memberEventCount = 0
//events[0].eventType == MXEventTypeRoomMember || events[0].eventType == MXEventTypeRoomServerACL
var aclEventCount = 0, otherEventCount = 0
for event in events {
if event.eventType == .roomMember {
memberEventCount += 1
} else if event.eventType == .roomServerACL {
if event.eventType != .roomServerACL {
otherEventCount += 1
} else {
aclEventCount += 1
}
}
if aclEventCount > 0 && memberEventCount == 0 {
if aclEventCount > 0 && otherEventCount == 0 {
return .all
} else if aclEventCount > 0 && memberEventCount > 0 {
return .mixed
} else {
} else if otherEventCount > 0 && aclEventCount == 0 {
return .none
} else {
return .mixed
}
}
}