Switch to using the power levels for retrieving a user's role.

This commit is contained in:
Stefan Ceriu
2025-06-25 12:42:24 +03:00
committed by Stefan Ceriu
parent de723853e3
commit 8dc389cd54
6 changed files with 88 additions and 5 deletions
@@ -13585,6 +13585,76 @@ class RoomPowerLevelsProxyMock: RoomPowerLevelsProxyProtocol, @unchecked Sendabl
var underlyingValues: RoomPowerLevelsValues!
var userPowerLevels: [String: Int64] = [:]
//MARK: - suggestedRole
var suggestedRoleForUserUnderlyingCallsCount = 0
var suggestedRoleForUserCallsCount: Int {
get {
if Thread.isMainThread {
return suggestedRoleForUserUnderlyingCallsCount
} else {
var returnValue: Int? = nil
DispatchQueue.main.sync {
returnValue = suggestedRoleForUserUnderlyingCallsCount
}
return returnValue!
}
}
set {
if Thread.isMainThread {
suggestedRoleForUserUnderlyingCallsCount = newValue
} else {
DispatchQueue.main.sync {
suggestedRoleForUserUnderlyingCallsCount = newValue
}
}
}
}
var suggestedRoleForUserCalled: Bool {
return suggestedRoleForUserCallsCount > 0
}
var suggestedRoleForUserReceivedUserID: String?
var suggestedRoleForUserReceivedInvocations: [String] = []
var suggestedRoleForUserUnderlyingReturnValue: RoomMemberRole!
var suggestedRoleForUserReturnValue: RoomMemberRole! {
get {
if Thread.isMainThread {
return suggestedRoleForUserUnderlyingReturnValue
} else {
var returnValue: RoomMemberRole? = nil
DispatchQueue.main.sync {
returnValue = suggestedRoleForUserUnderlyingReturnValue
}
return returnValue!
}
}
set {
if Thread.isMainThread {
suggestedRoleForUserUnderlyingReturnValue = newValue
} else {
DispatchQueue.main.sync {
suggestedRoleForUserUnderlyingReturnValue = newValue
}
}
}
}
var suggestedRoleForUserClosure: ((String) -> RoomMemberRole)?
func suggestedRole(forUser userID: String) -> RoomMemberRole {
suggestedRoleForUserCallsCount += 1
suggestedRoleForUserReceivedUserID = userID
DispatchQueue.main.async {
self.suggestedRoleForUserReceivedInvocations.append(userID)
}
if let suggestedRoleForUserClosure = suggestedRoleForUserClosure {
return suggestedRoleForUserClosure(userID)
} else {
return suggestedRoleForUserReturnValue
}
}
//MARK: - canOwnUser
var canOwnUserSendMessageUnderlyingCallsCount = 0