Refactor federation check

This commit is contained in:
JanNiklas Grabowski
2023-11-29 13:47:08 +01:00
parent d446aaf24e
commit d71e58bf0a

View File

@@ -21,13 +21,15 @@ import MatrixSDK
@objc extension MXRoom {
func isRoomFederated() -> Bool {
var isFederated: Bool = true
var isFederated: Bool = false
state { state in
// Search for federate flag. If the flag is not found, default value is true
if let events = state?.stateEvents(with: .roomCreate) {
for event in events {
if let federateContentValue = event.wireContent["m.federate"] {
isFederated = federateContentValue as? Bool ?? true
} else {
isFederated = true
}
}
}
@@ -53,27 +55,15 @@ import MatrixSDK
}
func isDMFederated() -> Bool {
var isFederated: Bool = true
state { state in
// Search for federate flag. If the flag is not found, default value is true
if let events = state?.stateEvents(with: .roomCreate) {
for event in events {
if let federateContentValue = event.wireContent["m.federate"] {
isFederated = federateContentValue as? Bool ?? true
}
}
}
if isFederated {
// Check if the user is from the same homeserver
if let memberUserId = self.directUserId {
if let myUserId = self.mxSession.myUser.userId {
let memberUserIdComponents = memberUserId.components(separatedBy: ":")
let myUserIdComponents = myUserId.components(separatedBy: ":")
if memberUserIdComponents.count == 2 && myUserIdComponents.count == 2
&& memberUserIdComponents.last == myUserIdComponents.last {
isFederated = false
}
}
var isFederated: Bool = false
// Check if the user is from the same homeserver
if let memberUserId = self.directUserId {
if let myUserId = self.mxSession.myUser.userId {
let memberUserIdComponents = memberUserId.components(separatedBy: ":")
let myUserIdComponents = myUserId.components(separatedBy: ":")
if memberUserIdComponents.count == 2 && myUserIdComponents.count == 2
&& memberUserIdComponents.last != myUserIdComponents.last {
isFederated = true
}
}
}