diff --git a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/spaces/SpaceRoom.kt b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/spaces/SpaceRoom.kt index b14d688f02..3e72632e6c 100644 --- a/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/spaces/SpaceRoom.kt +++ b/libraries/matrix/api/src/main/kotlin/io/element/android/libraries/matrix/api/spaces/SpaceRoom.kt @@ -7,15 +7,14 @@ package io.element.android.libraries.matrix.api.spaces -import androidx.compose.runtime.Immutable import io.element.android.libraries.matrix.api.core.RoomAlias import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.room.CurrentUserMembership import io.element.android.libraries.matrix.api.room.RoomType import io.element.android.libraries.matrix.api.room.join.JoinRule import io.element.android.libraries.matrix.api.user.MatrixUser +import kotlinx.collections.immutable.ImmutableList -@Immutable data class SpaceRoom( val rawName: String?, val displayName: String, @@ -23,7 +22,7 @@ data class SpaceRoom( val canonicalAlias: RoomAlias?, val childrenCount: Int, val guestCanJoin: Boolean, - val heroes: List, + val heroes: ImmutableList, val joinRule: JoinRule?, val numJoinedMembers: Int, val roomId: RoomId, @@ -34,7 +33,7 @@ data class SpaceRoom( /** * The via parameters of the room. */ - val via: List, + val via: ImmutableList, val isDirect: Boolean?, ) { val isSpace = roomType == RoomType.Space diff --git a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/spaces/SpaceRoomMapper.kt b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/spaces/SpaceRoomMapper.kt index ac5cbf5c00..3a9b78c3f9 100644 --- a/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/spaces/SpaceRoomMapper.kt +++ b/libraries/matrix/impl/src/main/kotlin/io/element/android/libraries/matrix/impl/spaces/SpaceRoomMapper.kt @@ -13,6 +13,7 @@ import io.element.android.libraries.matrix.api.core.RoomId import io.element.android.libraries.matrix.api.spaces.SpaceRoom import io.element.android.libraries.matrix.impl.room.join.map import io.element.android.libraries.matrix.impl.room.map +import kotlinx.collections.immutable.toImmutableList import org.matrix.rustcomponents.sdk.SpaceRoom as RustSpaceRoom class SpaceRoomMapper { @@ -22,7 +23,7 @@ class SpaceRoomMapper { canonicalAlias = spaceRoom.canonicalAlias?.let(::RoomAlias), childrenCount = spaceRoom.childrenCount.toInt(), guestCanJoin = spaceRoom.guestCanJoin, - heroes = spaceRoom.heroes.orEmpty().map { it.map() }, + heroes = spaceRoom.heroes.orEmpty().map { it.map() }.toImmutableList(), joinRule = spaceRoom.joinRule?.map(), rawName = spaceRoom.rawName, displayName = spaceRoom.displayName, @@ -32,7 +33,7 @@ class SpaceRoomMapper { state = spaceRoom.state?.map(), topic = spaceRoom.topic, worldReadable = spaceRoom.worldReadable.orFalse(), - via = spaceRoom.via, + via = spaceRoom.via.toImmutableList(), isDirect = spaceRoom.isDirect, ) } diff --git a/libraries/previewutils/src/main/kotlin/io/element/android/libraries/previewutils/room/SpaceRoomFixture.kt b/libraries/previewutils/src/main/kotlin/io/element/android/libraries/previewutils/room/SpaceRoomFixture.kt index 5f8fd2ee38..aae6bbfb76 100644 --- a/libraries/previewutils/src/main/kotlin/io/element/android/libraries/previewutils/room/SpaceRoomFixture.kt +++ b/libraries/previewutils/src/main/kotlin/io/element/android/libraries/previewutils/room/SpaceRoomFixture.kt @@ -14,6 +14,7 @@ import io.element.android.libraries.matrix.api.room.RoomType import io.element.android.libraries.matrix.api.room.join.JoinRule import io.element.android.libraries.matrix.api.spaces.SpaceRoom import io.element.android.libraries.matrix.api.user.MatrixUser +import kotlinx.collections.immutable.toImmutableList fun aSpaceRoom( rawName: String? = null, @@ -39,7 +40,7 @@ fun aSpaceRoom( canonicalAlias = canonicalAlias, childrenCount = childrenCount, guestCanJoin = guestCanJoin, - heroes = heroes, + heroes = heroes.toImmutableList(), joinRule = joinRule, numJoinedMembers = numJoinedMembers, roomId = roomId, @@ -47,6 +48,6 @@ fun aSpaceRoom( state = state, topic = topic, worldReadable = worldReadable, - via = via, + via = via.toImmutableList(), isDirect = isDirect )