MESSENGER-6171 add federation ui for room invite

This commit is contained in:
JanNiklas Grabowski
2024-06-24 14:21:19 +02:00
parent c4b44de04b
commit 330de90df9
5 changed files with 110 additions and 44 deletions

View File

@@ -24,7 +24,11 @@ import MatrixSDK
func getFederationStatus(completion: ((_ isFederated:Bool) -> Void)?) {
// #5715 do not show federation for invites
if (summary != nil && summary.membership == .invite) {
completion?(false)
if let roomId = summary.roomId {
completion?(isRoomIdFederated(roomId: roomId))
} else {
completion?(false)
}
} else {
var federationStatus = true
// Get federated flag
@@ -225,4 +229,20 @@ import MatrixSDK
} catch { return }
}
}
func isRoomIdFederated(roomId: String) -> Bool {
var isFederated: Bool = false
// Check if the room is from the same homeserver
if self.mxSession != nil && self.mxSession.myUser != nil {
if let myUserId = self.mxSession.myUser.userId {
let memberUserIdComponents = roomId.components(separatedBy: ":")
let myUserIdComponents = myUserId.components(separatedBy: ":")
if memberUserIdComponents.count == 2 && myUserIdComponents.count == 2
&& memberUserIdComponents.last != myUserIdComponents.last {
isFederated = true
}
}
}
return isFederated
}
}