MESSENGER-5290 refactor to consider if sender or target

This commit is contained in:
Frank Rotermund
2024-01-29 08:12:33 +01:00
parent 6c63bab67f
commit 9b00e5a392

View File

@@ -619,9 +619,6 @@ static NSString *const kRepliedTextPattern = @"<mx-reply>.*<blockquote>.*<br>(.*
// Prepare targeted member display name
NSString *targetDisplayName = event.stateKey;
// bwi #5290 federated user get additional status text
NSString *displayName = [self formattedJoinEvent:targetDisplayName room:[mxSession roomWithRoomId:event.roomId] userId:event.sender];
// Retrieve content displayname
NSString *contentDisplayname;
MXJSONModelSetString(contentDisplayname, event.content[@"displayname"]);
@@ -661,7 +658,7 @@ static NSString *const kRepliedTextPattern = @"<mx-reply>.*<blockquote>.*<br>(.*
if (isEventSenderMyUser)
{
// bwi #5290 federated user get additional status text
displayText = [VectorL10n noticeRoomInviteByYou:displayName];
displayText = [VectorL10n noticeRoomInviteByYou:[self formattedMemberDisplayname:event isSender:NO]];
}
else if ([targetDisplayName isEqualToString:mxSession.myUserId])
{
@@ -675,7 +672,7 @@ static NSString *const kRepliedTextPattern = @"<mx-reply>.*<blockquote>.*<br>(.*
}
// bwi #5290 federated user get additional status text
displayText = [VectorL10n noticeRoomInvite:senderDisplayName :displayName];
displayText = [VectorL10n noticeRoomInvite:senderDisplayName :[self formattedMemberDisplayname:event isSender:NO]];
}
}
}
@@ -700,7 +697,7 @@ static NSString *const kRepliedTextPattern = @"<mx-reply>.*<blockquote>.*<br>(.*
targetDisplayName = contentDisplayname;
}
// bwi #5290 federated user get additional status text
displayText = [VectorL10n noticeRoomJoin:displayName];
displayText = [VectorL10n noticeRoomJoin:[self formattedMemberDisplayname:event isSender:NO]];
}
}
}
@@ -735,7 +732,7 @@ static NSString *const kRepliedTextPattern = @"<mx-reply>.*<blockquote>.*<br>(.*
else
{
// bwi #5290 federated user get additional status text
displayText = [VectorL10n noticeRoomReject:displayName];
displayText = [VectorL10n noticeRoomReject:[self formattedMemberDisplayname:event isSender:NO]];
}
}
else
@@ -747,7 +744,7 @@ static NSString *const kRepliedTextPattern = @"<mx-reply>.*<blockquote>.*<br>(.*
else
{
// bwi #5290 federated user get additional status text
displayText = [BWIL10n noticeRoomLeave:displayName];
displayText = [BWIL10n noticeRoomLeave:[self formattedMemberDisplayname:event isSender:NO]];
}
}
}
@@ -759,12 +756,12 @@ static NSString *const kRepliedTextPattern = @"<mx-reply>.*<blockquote>.*<br>(.*
if (isEventSenderMyUser)
{
// bwi #5290 federated user get additional status text
displayText = [VectorL10n noticeRoomWithdrawByYou:displayName];
displayText = [VectorL10n noticeRoomWithdrawByYou:[self formattedMemberDisplayname:event isSender:YES]];
}
else
{
// bwi #5290 federated user get additional status text
displayText = [VectorL10n noticeRoomWithdraw:senderDisplayName :displayName];
displayText = [VectorL10n noticeRoomWithdraw:senderDisplayName :[self formattedMemberDisplayname:event isSender:YES]];
}
if (event.content[@"reason"])
{
@@ -777,12 +774,12 @@ static NSString *const kRepliedTextPattern = @"<mx-reply>.*<blockquote>.*<br>(.*
if (isEventSenderMyUser)
{
// bwi #5290 federated user get additional status text
displayText = [VectorL10n noticeRoomKickByYou:displayName];
displayText = [VectorL10n noticeRoomKickByYou:[self formattedMemberDisplayname:event isSender:NO]];
}
else
{
// bwi #5290 federated user get additional status text
displayText = [VectorL10n noticeRoomKick:senderDisplayName :displayName];
displayText = [VectorL10n noticeRoomKick:senderDisplayName :[self formattedMemberDisplayname:event isSender:NO]];
}
// add reason if exists
@@ -796,12 +793,12 @@ static NSString *const kRepliedTextPattern = @"<mx-reply>.*<blockquote>.*<br>(.*
if (isEventSenderMyUser)
{
// bwi #5290 federated user get additional status text
displayText = [VectorL10n noticeRoomUnbanByYou:displayName];
displayText = [VectorL10n noticeRoomUnbanByYou:[self formattedMemberDisplayname:event isSender:NO]];
}
else
{
// bwi #5290 federated user get additional status text
displayText = [VectorL10n noticeRoomUnban:senderDisplayName :displayName];
displayText = [VectorL10n noticeRoomUnban:senderDisplayName :[self formattedMemberDisplayname:event isSender:NO]];
}
}
}
@@ -817,12 +814,12 @@ static NSString *const kRepliedTextPattern = @"<mx-reply>.*<blockquote>.*<br>(.*
if (isEventSenderMyUser)
{
// bwi #5290 federated user get additional status text
displayText = [VectorL10n noticeRoomBanByYou:displayName];
displayText = [VectorL10n noticeRoomBanByYou:[self formattedMemberDisplayname:event isSender:NO]];
}
else
{
// bwi #5290 federated user get additional status text
displayText = [VectorL10n noticeRoomBan:senderDisplayName :displayName];
displayText = [VectorL10n noticeRoomBan:senderDisplayName :[self formattedMemberDisplayname:event isSender:NO]];
}
if (event.content[@"reason"])
{
@@ -2510,8 +2507,34 @@ static NSString *const kRepliedTextPattern = @"<mx-reply>.*<blockquote>.*<br>(.*
}
#pragma mark - federation
// bwi #5290 federated user get additional status text
- (NSString *)formattedJoinEvent:(NSString *)displayName room:(MXRoom *)room userId:(NSString *)userId {
- (NSString *)formattedMemberDisplayname:(MXEvent*)event isSender:(BOOL)isSender {
NSString *targetDisplayName = event.stateKey;
NSString *contentDisplayname;
MXJSONModelSetString(contentDisplayname, event.content[@"displayname"]);
NSString *prevContentDisplayname;
MXJSONModelSetString(prevContentDisplayname, event.prevContent[@"displayname"]);
NSString *userId = isSender ? event.sender : event.stateKey;
MXRoom *room = [mxSession roomWithRoomId:event.roomId];
NSString *displayName;
if (contentDisplayname.length) {
displayName = [self formattedMemberEvent:contentDisplayname room:room userId:userId];
} else if (prevContentDisplayname.length) {
displayName = [self formattedMemberEvent:prevContentDisplayname room:room userId:userId];
}
else {
displayName = [self formattedMemberEvent:targetDisplayName room:room userId:userId];
}
return displayName;
}
// bwi #5290 federated user get additional status text
- (NSString *)formattedMemberEvent:(NSString *)displayName room:(MXRoom *)room userId:(NSString *)userId {
if ( BWIBuildSettings.shared.isFederationEnabled && [room isRoomMemberFederated:userId]) {
NSArray *memberUserIdComponents = [userId componentsSeparatedByString:@":"];