Skip to content

Commit 7b1a4bb

Browse files
committed
Let JoinRule and AllowRule be Immutable.
1 parent a4dcdfd commit 7b1a4bb

File tree

4 files changed

+14
-6
lines changed
  • features/joinroom/impl/src/test/kotlin/io/element/android/features/joinroom/impl
  • libraries/matrix
    • api/src/main/kotlin/io/element/android/libraries/matrix/api/room/join
    • impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/join

4 files changed

+14
-6
lines changed

features/joinroom/impl/src/test/kotlin/io/element/android/features/joinroom/impl/JoinRoomPresenterTest.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ import io.element.android.tests.testutils.lambda.assert
5858
import io.element.android.tests.testutils.lambda.lambdaRecorder
5959
import io.element.android.tests.testutils.lambda.value
6060
import io.element.android.tests.testutils.test
61+
import kotlinx.collections.immutable.persistentListOf
6162
import kotlinx.coroutines.flow.first
6263
import kotlinx.coroutines.flow.flowOf
6364
import kotlinx.coroutines.test.runTest
@@ -913,7 +914,7 @@ class JoinRoomPresenterTest {
913914
val client = FakeMatrixClient(
914915
getNotJoinedRoomResult = { _, _ ->
915916
Result.success(
916-
aRoomPreview(info = aRoomPreviewInfo(joinRule = JoinRule.KnockRestricted(emptyList())))
917+
aRoomPreview(info = aRoomPreviewInfo(joinRule = JoinRule.KnockRestricted(persistentListOf())))
917918
)
918919
}
919920
)
@@ -933,7 +934,7 @@ class JoinRoomPresenterTest {
933934
val client = FakeMatrixClient(
934935
getNotJoinedRoomResult = { _, _ ->
935936
Result.success(
936-
aRoomPreview(info = aRoomPreviewInfo(joinRule = JoinRule.Restricted(emptyList())))
937+
aRoomPreview(info = aRoomPreviewInfo(joinRule = JoinRule.Restricted(persistentListOf())))
937938
)
938939
}
939940
)

libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/join/AllowRule.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@
77

88
package io.element.android.libraries.matrix.api.room.join
99

10+
import androidx.compose.runtime.Immutable
1011
import io.element.android.libraries.matrix.api.core.RoomId
1112

13+
@Immutable
1214
sealed interface AllowRule {
1315
data class RoomMembership(val roomId: RoomId) : AllowRule
1416
data class Custom(val json: String) : AllowRule

libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/room/join/JoinRule.kt

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,16 @@
77

88
package io.element.android.libraries.matrix.api.room.join
99

10+
import androidx.compose.runtime.Immutable
11+
import kotlinx.collections.immutable.ImmutableList
12+
13+
@Immutable
1014
sealed interface JoinRule {
1115
data object Public : JoinRule
1216
data object Private : JoinRule
1317
data object Knock : JoinRule
1418
data object Invite : JoinRule
15-
data class Restricted(val rules: List<AllowRule>) : JoinRule
16-
data class KnockRestricted(val rules: List<AllowRule>) : JoinRule
19+
data class Restricted(val rules: ImmutableList<AllowRule>) : JoinRule
20+
data class KnockRestricted(val rules: ImmutableList<AllowRule>) : JoinRule
1721
data class Custom(val value: String) : JoinRule
1822
}

libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/room/join/JoinRule.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
package io.element.android.libraries.matrix.impl.room.join
99

1010
import io.element.android.libraries.matrix.api.room.join.JoinRule
11+
import kotlinx.collections.immutable.toPersistentList
1112
import org.matrix.rustcomponents.sdk.JoinRule as RustJoinRule
1213

1314
fun RustJoinRule.map(): JoinRule {
@@ -16,9 +17,9 @@ fun RustJoinRule.map(): JoinRule {
1617
RustJoinRule.Private -> JoinRule.Private
1718
RustJoinRule.Knock -> JoinRule.Knock
1819
RustJoinRule.Invite -> JoinRule.Invite
19-
is RustJoinRule.Restricted -> JoinRule.Restricted(rules.map { it.map() })
20+
is RustJoinRule.Restricted -> JoinRule.Restricted(rules.map { it.map() }.toPersistentList())
2021
is RustJoinRule.Custom -> JoinRule.Custom(repr)
21-
is RustJoinRule.KnockRestricted -> JoinRule.KnockRestricted(rules.map { it.map() })
22+
is RustJoinRule.KnockRestricted -> JoinRule.KnockRestricted(rules.map { it.map() }.toPersistentList())
2223
}
2324
}
2425

0 commit comments

Comments
 (0)