Remove JoinRule.Private from the codebase (#6129)
It shouldn't be in use, since it was never properly defined: - The `Private` values coming from the SDK are considered to be `Invite` instead. - Remove any existing `JoinRule.Private` usages in our code.
This commit is contained in:
parent
4fe7463679
commit
5175bacb5e
12 changed files with 14 additions and 46 deletions
|
|
@ -35,7 +35,7 @@ sealed interface JoinRuleItem {
|
||||||
* Transforms a [JoinRuleItem] option into a [JoinRule].
|
* Transforms a [JoinRuleItem] option into a [JoinRule].
|
||||||
*/
|
*/
|
||||||
fun toJoinRule(): JoinRule = when (this) {
|
fun toJoinRule(): JoinRule = when (this) {
|
||||||
Private -> JoinRule.Private
|
Private -> JoinRule.Invite
|
||||||
PublicVisibility.Public -> JoinRule.Public
|
PublicVisibility.Public -> JoinRule.Public
|
||||||
PublicVisibility.AskToJoin -> JoinRule.Knock
|
PublicVisibility.AskToJoin -> JoinRule.Knock
|
||||||
is PublicVisibility.Restricted -> JoinRule.Restricted(persistentListOf(AllowRule.RoomMembership(parentSpaceId)))
|
is PublicVisibility.Restricted -> JoinRule.Restricted(persistentListOf(AllowRule.RoomMembership(parentSpaceId)))
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ import org.junit.Test
|
||||||
class JoinRuleItemTest {
|
class JoinRuleItemTest {
|
||||||
@Test
|
@Test
|
||||||
fun `toJoinRule works as expected`() {
|
fun `toJoinRule works as expected`() {
|
||||||
assertThat(JoinRuleItem.Private.toJoinRule()).isEqualTo(JoinRule.Private)
|
assertThat(JoinRuleItem.Private.toJoinRule()).isEqualTo(JoinRule.Invite)
|
||||||
assertThat(JoinRuleItem.PublicVisibility.Public.toJoinRule()).isEqualTo(JoinRule.Public)
|
assertThat(JoinRuleItem.PublicVisibility.Public.toJoinRule()).isEqualTo(JoinRule.Public)
|
||||||
assertThat(JoinRuleItem.PublicVisibility.AskToJoin.toJoinRule()).isEqualTo(JoinRule.Knock)
|
assertThat(JoinRuleItem.PublicVisibility.AskToJoin.toJoinRule()).isEqualTo(JoinRule.Knock)
|
||||||
assertThat(JoinRuleItem.PublicVisibility.Restricted(A_ROOM_ID).toJoinRule())
|
assertThat(JoinRuleItem.PublicVisibility.Restricted(A_ROOM_ID).toJoinRule())
|
||||||
|
|
|
||||||
|
|
@ -376,10 +376,9 @@ private fun JoinRule?.toJoinAuthorisationStatus(): JoinAuthorisationStatus {
|
||||||
return when (this) {
|
return when (this) {
|
||||||
JoinRule.Knock,
|
JoinRule.Knock,
|
||||||
is JoinRule.KnockRestricted -> JoinAuthorisationStatus.CanKnock
|
is JoinRule.KnockRestricted -> JoinAuthorisationStatus.CanKnock
|
||||||
JoinRule.Invite,
|
JoinRule.Invite -> JoinAuthorisationStatus.NeedInvite
|
||||||
JoinRule.Private -> JoinAuthorisationStatus.NeedInvite
|
|
||||||
is JoinRule.Restricted -> JoinAuthorisationStatus.Restricted
|
is JoinRule.Restricted -> JoinAuthorisationStatus.Restricted
|
||||||
JoinRule.Public -> JoinAuthorisationStatus.CanJoin
|
JoinRule.Public -> JoinAuthorisationStatus.CanJoin
|
||||||
else -> JoinAuthorisationStatus.Unknown
|
is JoinRule.Custom, null -> JoinAuthorisationStatus.Unknown
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1035,34 +1035,6 @@ class JoinRoomPresenterTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
|
||||||
fun `present - when room is not known RoomPreview is loaded as Private`() = runTest {
|
|
||||||
val client = FakeMatrixClient(
|
|
||||||
getNotJoinedRoomResult = { _, _ ->
|
|
||||||
Result.success(
|
|
||||||
aRoomPreview(
|
|
||||||
info = aRoomPreviewInfo(joinRule = JoinRule.Private),
|
|
||||||
roomMembershipDetails = {
|
|
||||||
Result.success(aRoomMembershipDetails())
|
|
||||||
},
|
|
||||||
)
|
|
||||||
)
|
|
||||||
},
|
|
||||||
spaceService = FakeSpaceService(
|
|
||||||
spaceRoomListResult = { FakeSpaceRoomList() },
|
|
||||||
),
|
|
||||||
)
|
|
||||||
val presenter = createJoinRoomPresenter(
|
|
||||||
matrixClient = client
|
|
||||||
)
|
|
||||||
presenter.test {
|
|
||||||
skipItems(1)
|
|
||||||
awaitItem().also { state ->
|
|
||||||
assertThat(state.joinAuthorisationStatus).isEqualTo(JoinAuthorisationStatus.NeedInvite)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - when room is not known RoomPreview is loaded as Custom`() = runTest {
|
fun `present - when room is not known RoomPreview is loaded as Custom`() = runTest {
|
||||||
val client = FakeMatrixClient(
|
val client = FakeMatrixClient(
|
||||||
|
|
|
||||||
|
|
@ -582,7 +582,7 @@ class RoomDetailsPresenterTest {
|
||||||
assertThat(awaitItem().canShowKnockRequests).isFalse()
|
assertThat(awaitItem().canShowKnockRequests).isFalse()
|
||||||
featureFlagService.setFeatureEnabled(FeatureFlags.Knock, true)
|
featureFlagService.setFeatureEnabled(FeatureFlags.Knock, true)
|
||||||
assertThat(awaitItem().canShowKnockRequests).isTrue()
|
assertThat(awaitItem().canShowKnockRequests).isTrue()
|
||||||
room.givenRoomInfo(aRoomInfo(joinRule = JoinRule.Private))
|
room.givenRoomInfo(aRoomInfo(joinRule = JoinRule.Invite))
|
||||||
assertThat(awaitItem().canShowKnockRequests).isFalse()
|
assertThat(awaitItem().canShowKnockRequests).isFalse()
|
||||||
cancelAndIgnoreRemainingEvents()
|
cancelAndIgnoreRemainingEvents()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -472,7 +472,6 @@ private fun JoinRule?.map(): SecurityAndPrivacyRoomAccess {
|
||||||
JoinRule.Invite -> SecurityAndPrivacyRoomAccess.InviteOnly
|
JoinRule.Invite -> SecurityAndPrivacyRoomAccess.InviteOnly
|
||||||
// All other cases are not supported so we default to InviteOnly
|
// All other cases are not supported so we default to InviteOnly
|
||||||
is JoinRule.Custom,
|
is JoinRule.Custom,
|
||||||
JoinRule.Private,
|
|
||||||
null -> SecurityAndPrivacyRoomAccess.InviteOnly
|
null -> SecurityAndPrivacyRoomAccess.InviteOnly
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -481,7 +480,7 @@ private fun SecurityAndPrivacyRoomAccess.map(): JoinRule? {
|
||||||
return when (this) {
|
return when (this) {
|
||||||
SecurityAndPrivacyRoomAccess.Anyone -> JoinRule.Public
|
SecurityAndPrivacyRoomAccess.Anyone -> JoinRule.Public
|
||||||
SecurityAndPrivacyRoomAccess.AskToJoin -> JoinRule.Knock
|
SecurityAndPrivacyRoomAccess.AskToJoin -> JoinRule.Knock
|
||||||
SecurityAndPrivacyRoomAccess.InviteOnly -> JoinRule.Private
|
SecurityAndPrivacyRoomAccess.InviteOnly -> JoinRule.Invite
|
||||||
is SecurityAndPrivacyRoomAccess.SpaceMember -> JoinRule.Restricted(
|
is SecurityAndPrivacyRoomAccess.SpaceMember -> JoinRule.Restricted(
|
||||||
rules = this.spaceIds.map { AllowRule.RoomMembership(it) }.toImmutableList()
|
rules = this.spaceIds.map { AllowRule.RoomMembership(it) }.toImmutableList()
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -309,7 +309,7 @@ class SecurityAndPrivacyPresenterTest {
|
||||||
baseRoom = FakeBaseRoom(
|
baseRoom = FakeBaseRoom(
|
||||||
roomPermissions = roomPermissions(),
|
roomPermissions = roomPermissions(),
|
||||||
getRoomVisibilityResult = { Result.success(RoomVisibility.Private) },
|
getRoomVisibilityResult = { Result.success(RoomVisibility.Private) },
|
||||||
initialRoomInfo = aRoomInfo(historyVisibility = RoomHistoryVisibility.Shared, joinRule = JoinRule.Private)
|
initialRoomInfo = aRoomInfo(historyVisibility = RoomHistoryVisibility.Shared, joinRule = JoinRule.Invite)
|
||||||
),
|
),
|
||||||
enableEncryptionResult = enableEncryptionLambda,
|
enableEncryptionResult = enableEncryptionLambda,
|
||||||
updateJoinRuleResult = updateJoinRuleLambda,
|
updateJoinRuleResult = updateJoinRuleLambda,
|
||||||
|
|
@ -1091,7 +1091,7 @@ class SecurityAndPrivacyPresenterTest {
|
||||||
baseRoom = FakeBaseRoom(
|
baseRoom = FakeBaseRoom(
|
||||||
roomPermissions = roomPermissions(),
|
roomPermissions = roomPermissions(),
|
||||||
getRoomVisibilityResult = { Result.success(RoomVisibility.Private) },
|
getRoomVisibilityResult = { Result.success(RoomVisibility.Private) },
|
||||||
initialRoomInfo = aRoomInfo(historyVisibility = RoomHistoryVisibility.Shared, joinRule = JoinRule.Private)
|
initialRoomInfo = aRoomInfo(historyVisibility = RoomHistoryVisibility.Shared, joinRule = JoinRule.Invite)
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
navigator: SecurityAndPrivacyNavigator = FakeSecurityAndPrivacyNavigator(),
|
navigator: SecurityAndPrivacyNavigator = FakeSecurityAndPrivacyNavigator(),
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,7 @@ class LeaveSpaceStateProvider : PreviewParameterProvider<LeaveSpaceState> {
|
||||||
),
|
),
|
||||||
aSelectableSpaceRoom(
|
aSelectableSpaceRoom(
|
||||||
spaceRoom = aSpaceRoom(
|
spaceRoom = aSpaceRoom(
|
||||||
joinRule = JoinRule.Private,
|
joinRule = JoinRule.Invite,
|
||||||
),
|
),
|
||||||
isSelected = false,
|
isSelected = false,
|
||||||
),
|
),
|
||||||
|
|
@ -56,7 +56,7 @@ class LeaveSpaceStateProvider : PreviewParameterProvider<LeaveSpaceState> {
|
||||||
),
|
),
|
||||||
aSelectableSpaceRoom(
|
aSelectableSpaceRoom(
|
||||||
spaceRoom = aSpaceRoom(
|
spaceRoom = aSpaceRoom(
|
||||||
joinRule = JoinRule.Private,
|
joinRule = JoinRule.Invite,
|
||||||
),
|
),
|
||||||
isSelected = true,
|
isSelected = true,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -311,8 +311,8 @@ private fun SpaceItem(
|
||||||
Row(
|
Row(
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
if (room.joinRule == JoinRule.Private) {
|
if (room.joinRule == JoinRule.Invite) {
|
||||||
// Picto for private
|
// Picto for invite only
|
||||||
Icon(
|
Icon(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.size(16.dp)
|
.size(16.dp)
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,6 @@ fun MediaPreviewValue?.isPreviewEnabled(joinRule: JoinRule?): Boolean {
|
||||||
null, On -> true
|
null, On -> true
|
||||||
Off -> false
|
Off -> false
|
||||||
Private -> when (joinRule) {
|
Private -> when (joinRule) {
|
||||||
is JoinRule.Private,
|
|
||||||
is JoinRule.Knock,
|
is JoinRule.Knock,
|
||||||
is JoinRule.Invite,
|
is JoinRule.Invite,
|
||||||
is JoinRule.Restricted,
|
is JoinRule.Restricted,
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,6 @@ import kotlinx.collections.immutable.ImmutableList
|
||||||
@Immutable
|
@Immutable
|
||||||
sealed interface JoinRule {
|
sealed interface JoinRule {
|
||||||
data object Public : JoinRule
|
data object Public : JoinRule
|
||||||
data object Private : JoinRule
|
|
||||||
data object Knock : JoinRule
|
data object Knock : JoinRule
|
||||||
data object Invite : JoinRule
|
data object Invite : JoinRule
|
||||||
data class Restricted(val rules: ImmutableList<AllowRule>) : JoinRule
|
data class Restricted(val rules: ImmutableList<AllowRule>) : JoinRule
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,8 @@ import org.matrix.rustcomponents.sdk.JoinRule as RustJoinRule
|
||||||
fun RustJoinRule.map(): JoinRule {
|
fun RustJoinRule.map(): JoinRule {
|
||||||
return when (this) {
|
return when (this) {
|
||||||
RustJoinRule.Public -> JoinRule.Public
|
RustJoinRule.Public -> JoinRule.Public
|
||||||
RustJoinRule.Private -> JoinRule.Private
|
// Assume a private join rule is invite only instead. Private shouldn't be in use in Matrix.
|
||||||
|
RustJoinRule.Private -> JoinRule.Invite
|
||||||
RustJoinRule.Knock -> JoinRule.Knock
|
RustJoinRule.Knock -> JoinRule.Knock
|
||||||
RustJoinRule.Invite -> JoinRule.Invite
|
RustJoinRule.Invite -> JoinRule.Invite
|
||||||
is RustJoinRule.Restricted -> JoinRule.Restricted(rules.map { it.map() }.toImmutableList())
|
is RustJoinRule.Restricted -> JoinRule.Restricted(rules.map { it.map() }.toImmutableList())
|
||||||
|
|
@ -27,7 +28,6 @@ fun RustJoinRule.map(): JoinRule {
|
||||||
fun JoinRule.map(): RustJoinRule {
|
fun JoinRule.map(): RustJoinRule {
|
||||||
return when (this) {
|
return when (this) {
|
||||||
JoinRule.Public -> RustJoinRule.Public
|
JoinRule.Public -> RustJoinRule.Public
|
||||||
JoinRule.Private -> RustJoinRule.Private
|
|
||||||
JoinRule.Knock -> RustJoinRule.Knock
|
JoinRule.Knock -> RustJoinRule.Knock
|
||||||
JoinRule.Invite -> RustJoinRule.Invite
|
JoinRule.Invite -> RustJoinRule.Invite
|
||||||
is JoinRule.Restricted -> RustJoinRule.Restricted(rules.map { it.map() })
|
is JoinRule.Restricted -> RustJoinRule.Restricted(rules.map { it.map() })
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue