MESSENGER-6173 fix status event wrong text

This commit is contained in:
JanNiklas Grabowski
2024-07-02 16:55:42 +02:00
parent eb6eda3000
commit 6a22f7ab36
2 changed files with 18 additions and 11 deletions

View File

@@ -415,6 +415,7 @@ static NSString *const kEventFormatterTimeFormat = @"HH:mm";
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)
{
@@ -455,7 +456,6 @@ static NSString *const kEventFormatterTimeFormat = @"HH:mm";
CollapsedACLEvents eventsType = [[FederationEventHelper shared] isCollapsedACLEventsWithEvents:events];
switch (eventsType) {
case CollapsedACLEventsNone:
displayText = [VectorL10n eventFormatterMemberUpdates:events.count];
break;
case CollapsedACLEventsMixed:
displayText = [BWIL10n eventFormatterAclAndOtherCollapsed:events.count];
@@ -463,8 +463,11 @@ static NSString *const kEventFormatterTimeFormat = @"HH:mm";
case CollapsedACLEventsAll:
displayText = [BWIL10n eventFormatterAclCollapsed:events.count];
break;
default:
case CollapsedACLEventsOnlyMember:
displayText = [VectorL10n eventFormatterMemberUpdates:events.count];
break;
default:
break;
}
}
}

View File

@@ -21,6 +21,7 @@ import Foundation
case none = 0
case mixed = 1
case all = 2
case onlyMember = 3
}
@objc class FederationEventHelper: NSObject {
@@ -58,22 +59,25 @@ 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, memberEventCount = 0
for event in events {
if event.eventType == .roomMember {
memberEventCount += 1
} else if event.eventType == .roomServerACL {
if event.eventType == .roomServerACL {
aclEventCount += 1
} else if event.eventType == .roomMember {
memberEventCount += 1
} else {
otherEventCount += 1
}
}
if aclEventCount > 0 && memberEventCount == 0 {
if aclEventCount > 0 && otherEventCount == 0 && memberEventCount == 0 {
return .all
} else if aclEventCount > 0 && memberEventCount > 0 {
return .mixed
} else {
} else if otherEventCount > 0 && aclEventCount == 0 && memberEventCount == 0 {
return .none
} else if memberEventCount > 0 && otherEventCount == 0 && aclEventCount == 0 {
return .onlyMember
} else {
return .mixed
}
}
}