Skip to content

Commit 865b0ec

Browse files
committed
Let SpaceRoom be stable the proper way.
1 parent 859a82d commit 865b0ec

File tree

3 files changed

+9
-8
lines changed
  • libraries
    • matrix
      • api/src/main/kotlin/io/element/android/libraries/matrix/api/spaces
      • impl/src/main/kotlin/io/element/android/libraries/matrix/impl/spaces
    • previewutils/src/main/kotlin/io/element/android/libraries/previewutils/room

3 files changed

+9
-8
lines changed

libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/spaces/SpaceRoom.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,23 +7,22 @@
77

88
package io.element.android.libraries.matrix.api.spaces
99

10-
import androidx.compose.runtime.Immutable
1110
import io.element.android.libraries.matrix.api.core.RoomAlias
1211
import io.element.android.libraries.matrix.api.core.RoomId
1312
import io.element.android.libraries.matrix.api.room.CurrentUserMembership
1413
import io.element.android.libraries.matrix.api.room.RoomType
1514
import io.element.android.libraries.matrix.api.room.join.JoinRule
1615
import io.element.android.libraries.matrix.api.user.MatrixUser
16+
import kotlinx.collections.immutable.ImmutableList
1717

18-
@Immutable
1918
data class SpaceRoom(
2019
val rawName: String?,
2120
val displayName: String,
2221
val avatarUrl: String?,
2322
val canonicalAlias: RoomAlias?,
2423
val childrenCount: Int,
2524
val guestCanJoin: Boolean,
26-
val heroes: List<MatrixUser>,
25+
val heroes: ImmutableList<MatrixUser>,
2726
val joinRule: JoinRule?,
2827
val numJoinedMembers: Int,
2928
val roomId: RoomId,
@@ -34,7 +33,7 @@ data class SpaceRoom(
3433
/**
3534
* The via parameters of the room.
3635
*/
37-
val via: List<String>,
36+
val via: ImmutableList<String>,
3837
val isDirect: Boolean?,
3938
) {
4039
val isSpace = roomType == RoomType.Space

libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/spaces/SpaceRoomMapper.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import io.element.android.libraries.matrix.api.core.RoomId
1313
import io.element.android.libraries.matrix.api.spaces.SpaceRoom
1414
import io.element.android.libraries.matrix.impl.room.join.map
1515
import io.element.android.libraries.matrix.impl.room.map
16+
import kotlinx.collections.immutable.toImmutableList
1617
import org.matrix.rustcomponents.sdk.SpaceRoom as RustSpaceRoom
1718

1819
class SpaceRoomMapper {
@@ -22,7 +23,7 @@ class SpaceRoomMapper {
2223
canonicalAlias = spaceRoom.canonicalAlias?.let(::RoomAlias),
2324
childrenCount = spaceRoom.childrenCount.toInt(),
2425
guestCanJoin = spaceRoom.guestCanJoin,
25-
heroes = spaceRoom.heroes.orEmpty().map { it.map() },
26+
heroes = spaceRoom.heroes.orEmpty().map { it.map() }.toImmutableList(),
2627
joinRule = spaceRoom.joinRule?.map(),
2728
rawName = spaceRoom.rawName,
2829
displayName = spaceRoom.displayName,
@@ -32,7 +33,7 @@ class SpaceRoomMapper {
3233
state = spaceRoom.state?.map(),
3334
topic = spaceRoom.topic,
3435
worldReadable = spaceRoom.worldReadable.orFalse(),
35-
via = spaceRoom.via,
36+
via = spaceRoom.via.toImmutableList(),
3637
isDirect = spaceRoom.isDirect,
3738
)
3839
}

libraries/previewutils/src/main/kotlin/io/element/android/libraries/previewutils/room/SpaceRoomFixture.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import io.element.android.libraries.matrix.api.room.RoomType
1414
import io.element.android.libraries.matrix.api.room.join.JoinRule
1515
import io.element.android.libraries.matrix.api.spaces.SpaceRoom
1616
import io.element.android.libraries.matrix.api.user.MatrixUser
17+
import kotlinx.collections.immutable.toImmutableList
1718

1819
fun aSpaceRoom(
1920
rawName: String? = null,
@@ -39,14 +40,14 @@ fun aSpaceRoom(
3940
canonicalAlias = canonicalAlias,
4041
childrenCount = childrenCount,
4142
guestCanJoin = guestCanJoin,
42-
heroes = heroes,
43+
heroes = heroes.toImmutableList(),
4344
joinRule = joinRule,
4445
numJoinedMembers = numJoinedMembers,
4546
roomId = roomId,
4647
roomType = roomType,
4748
state = state,
4849
topic = topic,
4950
worldReadable = worldReadable,
50-
via = via,
51+
via = via.toImmutableList(),
5152
isDirect = isDirect
5253
)

0 commit comments

Comments
 (0)