Use our own JoinRule type which doesn't include the reserved .private case. (#5056)

* Stop using Rust's JoinRule.private in mocks.

It isn't used anywhere else (see MSC4413 for more context).

* Use our own JoinRule (and AllowRule) types.

* Update ElementX/Sources/Services/Room/JoinRule.swift

Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com>

---------

Co-authored-by: Stefan Ceriu <stefan.ceriu@gmail.com>
This commit is contained in:
Doug
2026-02-06 13:54:53 +00:00
committed by GitHub
parent 61763d9893
commit bff328554a
18 changed files with 119 additions and 41 deletions
@@ -235,7 +235,7 @@ class JoinRoomScreenViewModel: JoinRoomScreenViewModelType, JoinRoomScreenViewMo
state.mode = .banned(sender: nil, reason: nil)
default:
switch spaceServiceRoom.joinRule {
case .private, .invite:
case .invite:
state.mode = .inviteRequired
case .knock, .knockRestricted:
state.mode = appSettings.knockingEnabled ? .knockable : .joinable
@@ -258,7 +258,7 @@ class JoinRoomScreenViewModel: JoinRoomScreenViewModelType, JoinRoomScreenViewMo
reason: membershipDetails?.ownRoomMember.membershipChangeReason)
default:
switch roomPreview.info.joinRule {
case .private, .invite:
case .invite:
state.mode = .inviteRequired
case .knock, .knockRestricted:
state.mode = appSettings.knockingEnabled ? .knockable : .joinable