diff --git a/ElementX/Resources/Localizations/en.lproj/Localizable.strings b/ElementX/Resources/Localizations/en.lproj/Localizable.strings index 3c952f25e..bce2fd218 100644 --- a/ElementX/Resources/Localizations/en.lproj/Localizable.strings +++ b/ElementX/Resources/Localizations/en.lproj/Localizable.strings @@ -623,6 +623,7 @@ "screen_room_single_knock_request_title" = "%1$@ wants to join this room"; "screen_room_change_permissions_change_settings" = "Change settings"; "screen_room_change_permissions_manage_space" = "Manage space"; +"screen_room_change_permissions_manage_space_rooms" = "Manage rooms"; "screen_room_change_permissions_title" = "Permissions"; "screen_room_change_role_administrators_or_owners_title" = "Edit Admins or Owners"; "screen_room_details_pinned_events_row_title" = "Pinned messages"; diff --git a/ElementX/Sources/Generated/Strings.swift b/ElementX/Sources/Generated/Strings.swift index 25ee2ec4c..24474f901 100644 --- a/ElementX/Sources/Generated/Strings.swift +++ b/ElementX/Sources/Generated/Strings.swift @@ -2306,6 +2306,8 @@ internal enum L10n { internal static var screenRoomChangePermissionsInvitePeople: String { return L10n.tr("Localizable", "screen_room_change_permissions_invite_people") } /// Manage space internal static var screenRoomChangePermissionsManageSpace: String { return L10n.tr("Localizable", "screen_room_change_permissions_manage_space") } + /// Manage rooms + internal static var screenRoomChangePermissionsManageSpaceRooms: String { return L10n.tr("Localizable", "screen_room_change_permissions_manage_space_rooms") } /// Manage members internal static var screenRoomChangePermissionsMemberModeration: String { return L10n.tr("Localizable", "screen_room_change_permissions_member_moderation") } /// Messages and content diff --git a/ElementX/Sources/Mocks/RoomPowerLevelsProxyMock.swift b/ElementX/Sources/Mocks/RoomPowerLevelsProxyMock.swift index 2da618d31..3211cfdcf 100644 --- a/ElementX/Sources/Mocks/RoomPowerLevelsProxyMock.swift +++ b/ElementX/Sources/Mocks/RoomPowerLevelsProxyMock.swift @@ -64,6 +64,7 @@ extension RoomPowerLevelsValues { usersDefault: 0, roomName: 50, roomAvatar: 50, - roomTopic: 50) + roomTopic: 50, + manageRoomsInSpace: 50) } } diff --git a/ElementX/Sources/Screens/RoomChangePermissionsScreen/RoomChangePermissionsScreenModels.swift b/ElementX/Sources/Screens/RoomChangePermissionsScreen/RoomChangePermissionsScreenModels.swift index de74b85fe..7c2685c48 100644 --- a/ElementX/Sources/Screens/RoomChangePermissionsScreen/RoomChangePermissionsScreenModels.swift +++ b/ElementX/Sources/Screens/RoomChangePermissionsScreen/RoomChangePermissionsScreenModels.swift @@ -112,6 +112,9 @@ extension RoomChangePermissionsScreenViewState { case .manageSpace: if isSpace { settings[group] = [ + RoomPermissionsSetting(title: L10n.screenRoomChangePermissionsManageSpaceRooms, + value: currentPermissions.manageRoomsInSpace, + keyPath: \.manageRoomsInSpace), RoomPermissionsSetting(title: L10n.screenRoomChangePermissionsChangeSettings, value: currentPermissions.stateDefault, keyPath: \.stateDefault) diff --git a/ElementX/Sources/Services/Room/RoomPermissions.swift b/ElementX/Sources/Services/Room/RoomPermissions.swift index 762c8044b..b7c093a46 100644 --- a/ElementX/Sources/Services/Room/RoomPermissions.swift +++ b/ElementX/Sources/Services/Room/RoomPermissions.swift @@ -41,6 +41,7 @@ struct RoomPermissionsSetting: Identifiable { case \.roomName: \.roomName case \.roomAvatar: \.roomAvatar case \.roomTopic: \.roomTopic + case \.manageRoomsInSpace: \.manageRoomsInSpace default: fatalError("Unexpected key path: \(keyPath)") } } @@ -67,6 +68,8 @@ struct RoomPermissions { var roomAvatar: RoomRole /// The level required to change the room's topic. var roomTopic: RoomRole + /// The level required to add/remove childrens from a space. + var manageRoomsInSpace: RoomRole } extension RoomPermissions { @@ -82,5 +85,6 @@ extension RoomPermissions { roomName = RoomRole(powerLevelValue: powerLevels.roomName) roomAvatar = RoomRole(powerLevelValue: powerLevels.roomAvatar) roomTopic = RoomRole(powerLevelValue: powerLevels.roomTopic) + manageRoomsInSpace = RoomRole(powerLevelValue: powerLevels.manageRoomsInSpace) } } diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/roomChangePermissionsScreen.Space-iPad-en-GB.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/roomChangePermissionsScreen.Space-iPad-en-GB.png index 1eb4ec0c8..aa6c57c7a 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/roomChangePermissionsScreen.Space-iPad-en-GB.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/roomChangePermissionsScreen.Space-iPad-en-GB.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:16d9ec76f9858d1a0f009d67c7a7bbb1bd888db2dfb0f47e36a7583b73b43ecf -size 154684 +oid sha256:5c4c11fb8d667addfc78f04bd42671b9a34f7cc240229c568a5fe21602602509 +size 163476 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/roomChangePermissionsScreen.Space-iPad-pseudo.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/roomChangePermissionsScreen.Space-iPad-pseudo.png index 387c4f3d7..cd2f0f538 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/roomChangePermissionsScreen.Space-iPad-pseudo.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/roomChangePermissionsScreen.Space-iPad-pseudo.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c33c79621a7f57b6a9e655db9c4b3418b61cfa2ba6e665e2b777ff1435a58956 -size 176304 +oid sha256:5ec6b6455a5da1bcf0fd5fc7c16a1165ff8db829eca2c77f9d23fc60326f9de5 +size 187167 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/roomChangePermissionsScreen.Space-iPhone-16-en-GB.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/roomChangePermissionsScreen.Space-iPhone-16-en-GB.png index 0f18e4359..7ce797020 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/roomChangePermissionsScreen.Space-iPhone-16-en-GB.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/roomChangePermissionsScreen.Space-iPhone-16-en-GB.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:342d2a1a88dd1a2dd12cf998575a7361e90babee7c40d247417fc81fa89eb29a -size 98108 +oid sha256:215901f4c359599ccdb9e91b2a0b44b0d5187568995f8ec74e321925cfcd8327 +size 106254 diff --git a/PreviewTests/Sources/__Snapshots__/PreviewTests/roomChangePermissionsScreen.Space-iPhone-16-pseudo.png b/PreviewTests/Sources/__Snapshots__/PreviewTests/roomChangePermissionsScreen.Space-iPhone-16-pseudo.png index 3119fb3b3..8e81cd232 100644 --- a/PreviewTests/Sources/__Snapshots__/PreviewTests/roomChangePermissionsScreen.Space-iPhone-16-pseudo.png +++ b/PreviewTests/Sources/__Snapshots__/PreviewTests/roomChangePermissionsScreen.Space-iPhone-16-pseudo.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6ea6ff411406dfeb4ec38fdbc81cb765f169294c7498438623f85d68bd1e1ff0 -size 131091 +oid sha256:65e816731647639a7a6bd07ca2d17b67036389805bf02f882f6e548e029928d5 +size 143652