replaced deprecated function with the new one to check for power levels

This commit is contained in:
Mauro Romito
2025-07-22 16:17:48 +02:00
parent 1db7169d4e
commit 1a23b84882
22 changed files with 64 additions and 51 deletions

View File

@@ -158,8 +158,9 @@ final class LocationSharingCoordinator: Coordinator, Presentable {
// Check if user can send beacon info state event
private func canShareLiveLocation() -> Bool {
guard let myUserId = parameters.roomDataSource.mxSession.myUserId,
let roomPowerLevels = parameters.roomDataSource.roomState.powerLevels,
let userPowerLevel = RoomPowerLevel(rawValue: roomPowerLevels.powerLevelOfUser(withUserID: myUserId)) else {
let roomState = parameters.roomDataSource.roomState,
let roomPowerLevels = roomState.powerLevels,
let userPowerLevel = RoomPowerLevel(rawValue: roomState.powerLevelOfUser(withUserID: myUserId)) else {
return false
}

View File

@@ -162,8 +162,10 @@ private class CompletionSuggestionCoordinatorRoomMemberProvider: RoomMembersProv
/// Gets the power levels for the room to update suggestions accordingly.
func updateWithPowerLevels() {
room.state { [weak self] state in
guard let self, let powerLevels = state?.powerLevels else { return }
let userPowerLevel = powerLevels.powerLevelOfUser(withUserID: self.userID)
guard let self,
let state,
let powerLevels = state.powerLevels else { return }
let userPowerLevel = state.powerLevelOfUser(withUserID: self.userID)
let mentionRoomPowerLevel = powerLevels.minimumPowerLevel(forNotifications: kMXRoomPowerLevelNotificationsRoomKey,
defaultPower: kMXRoomPowerLevelNotificationsRoomDefault)
self.canMentionRoom = userPowerLevel >= mentionRoomPowerLevel
@@ -208,9 +210,11 @@ private class CompletionSuggestionCoordinatorCommandProvider: CommandsProviderPr
func updateWithPowerLevels() {
room.state { [weak self] state in
guard let self, let powerLevels = state?.powerLevels else { return }
guard let self,
let state,
let powerLevels = state.powerLevels else { return }
let userPowerLevel = powerLevels.powerLevelOfUser(withUserID: self.userID)
let userPowerLevel = state.powerLevelOfUser(withUserID: self.userID)
self.isRoomAdmin = RoomPowerLevel(rawValue: userPowerLevel) == .admin
}
}

View File

@@ -150,12 +150,12 @@ class SpaceSettingsService: SpaceSettingsServiceProtocol {
return allowedParentIds
}
private func isField(ofType notification: String, editableWith powerLevels: MXRoomPowerLevels?) -> Bool {
guard let powerLevels = powerLevels else {
private func isField(ofType notification: String, editableWith roomState: MXRoomState) -> Bool {
guard let powerLevels = roomState.powerLevels else {
return false
}
let userPowerLevel = powerLevels.powerLevelOfUser(withUserID: session.myUserId)
let userPowerLevel = roomState.powerLevelOfUser(withUserID: session.myUserId)
return userPowerLevel >= powerLevels.minimumPowerLevel(forNotifications: notification, defaultPower: powerLevels.stateDefault)
}
@@ -226,11 +226,11 @@ class SpaceSettingsService: SpaceSettingsServiceProtocol {
avatarUrl: roomState.avatar,
visibility: visibility(with: roomState),
allowedParentIds: allowedParentIds(with: roomState),
isAvatarEditable: isField(ofType: kMXEventTypeStringRoomAvatar, editableWith: roomState.powerLevels),
isNameEditable: isField(ofType: kMXEventTypeStringRoomName, editableWith: roomState.powerLevels),
isTopicEditable: isField(ofType: kMXEventTypeStringRoomTopic, editableWith: roomState.powerLevels),
isAddressEditable: isField(ofType: kMXEventTypeStringRoomAliases, editableWith: roomState.powerLevels),
isAccessEditable: isField(ofType: kMXEventTypeStringRoomJoinRules, editableWith: roomState.powerLevels)
isAvatarEditable: isField(ofType: kMXEventTypeStringRoomAvatar, editableWith: roomState),
isNameEditable: isField(ofType: kMXEventTypeStringRoomName, editableWith: roomState),
isTopicEditable: isField(ofType: kMXEventTypeStringRoomTopic, editableWith: roomState),
isAddressEditable: isField(ofType: kMXEventTypeStringRoomAliases, editableWith: roomState),
isAccessEditable: isField(ofType: kMXEventTypeStringRoomJoinRules, editableWith: roomState)
)
}