Let SpaceRoom be stable the proper way.
This commit is contained in:
@@ -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<MatrixUser>,
|
||||
val heroes: ImmutableList<MatrixUser>,
|
||||
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<String>,
|
||||
val via: ImmutableList<String>,
|
||||
val isDirect: Boolean?,
|
||||
) {
|
||||
val isSpace = roomType == RoomType.Space
|
||||
|
||||
@@ -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,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user