Let SpaceRoom be stable the proper way.
This commit is contained in:
parent
4dd9c9ab73
commit
9dd6f7be68
3 changed files with 9 additions and 8 deletions
|
|
@ -7,15 +7,14 @@
|
||||||
|
|
||||||
package io.element.android.libraries.matrix.api.spaces
|
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.RoomAlias
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
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.CurrentUserMembership
|
||||||
import io.element.android.libraries.matrix.api.room.RoomType
|
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.room.join.JoinRule
|
||||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||||
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
|
|
||||||
@Immutable
|
|
||||||
data class SpaceRoom(
|
data class SpaceRoom(
|
||||||
val rawName: String?,
|
val rawName: String?,
|
||||||
val displayName: String,
|
val displayName: String,
|
||||||
|
|
@ -23,7 +22,7 @@ data class SpaceRoom(
|
||||||
val canonicalAlias: RoomAlias?,
|
val canonicalAlias: RoomAlias?,
|
||||||
val childrenCount: Int,
|
val childrenCount: Int,
|
||||||
val guestCanJoin: Boolean,
|
val guestCanJoin: Boolean,
|
||||||
val heroes: List<MatrixUser>,
|
val heroes: ImmutableList<MatrixUser>,
|
||||||
val joinRule: JoinRule?,
|
val joinRule: JoinRule?,
|
||||||
val numJoinedMembers: Int,
|
val numJoinedMembers: Int,
|
||||||
val roomId: RoomId,
|
val roomId: RoomId,
|
||||||
|
|
@ -34,7 +33,7 @@ data class SpaceRoom(
|
||||||
/**
|
/**
|
||||||
* The via parameters of the room.
|
* The via parameters of the room.
|
||||||
*/
|
*/
|
||||||
val via: List<String>,
|
val via: ImmutableList<String>,
|
||||||
val isDirect: Boolean?,
|
val isDirect: Boolean?,
|
||||||
) {
|
) {
|
||||||
val isSpace = roomType == RoomType.Space
|
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.api.spaces.SpaceRoom
|
||||||
import io.element.android.libraries.matrix.impl.room.join.map
|
import io.element.android.libraries.matrix.impl.room.join.map
|
||||||
import io.element.android.libraries.matrix.impl.room.map
|
import io.element.android.libraries.matrix.impl.room.map
|
||||||
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
import org.matrix.rustcomponents.sdk.SpaceRoom as RustSpaceRoom
|
import org.matrix.rustcomponents.sdk.SpaceRoom as RustSpaceRoom
|
||||||
|
|
||||||
class SpaceRoomMapper {
|
class SpaceRoomMapper {
|
||||||
|
|
@ -22,7 +23,7 @@ class SpaceRoomMapper {
|
||||||
canonicalAlias = spaceRoom.canonicalAlias?.let(::RoomAlias),
|
canonicalAlias = spaceRoom.canonicalAlias?.let(::RoomAlias),
|
||||||
childrenCount = spaceRoom.childrenCount.toInt(),
|
childrenCount = spaceRoom.childrenCount.toInt(),
|
||||||
guestCanJoin = spaceRoom.guestCanJoin,
|
guestCanJoin = spaceRoom.guestCanJoin,
|
||||||
heroes = spaceRoom.heroes.orEmpty().map { it.map() },
|
heroes = spaceRoom.heroes.orEmpty().map { it.map() }.toImmutableList(),
|
||||||
joinRule = spaceRoom.joinRule?.map(),
|
joinRule = spaceRoom.joinRule?.map(),
|
||||||
rawName = spaceRoom.rawName,
|
rawName = spaceRoom.rawName,
|
||||||
displayName = spaceRoom.displayName,
|
displayName = spaceRoom.displayName,
|
||||||
|
|
@ -32,7 +33,7 @@ class SpaceRoomMapper {
|
||||||
state = spaceRoom.state?.map(),
|
state = spaceRoom.state?.map(),
|
||||||
topic = spaceRoom.topic,
|
topic = spaceRoom.topic,
|
||||||
worldReadable = spaceRoom.worldReadable.orFalse(),
|
worldReadable = spaceRoom.worldReadable.orFalse(),
|
||||||
via = spaceRoom.via,
|
via = spaceRoom.via.toImmutableList(),
|
||||||
isDirect = spaceRoom.isDirect,
|
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.room.join.JoinRule
|
||||||
import io.element.android.libraries.matrix.api.spaces.SpaceRoom
|
import io.element.android.libraries.matrix.api.spaces.SpaceRoom
|
||||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||||
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
|
|
||||||
fun aSpaceRoom(
|
fun aSpaceRoom(
|
||||||
rawName: String? = null,
|
rawName: String? = null,
|
||||||
|
|
@ -39,7 +40,7 @@ fun aSpaceRoom(
|
||||||
canonicalAlias = canonicalAlias,
|
canonicalAlias = canonicalAlias,
|
||||||
childrenCount = childrenCount,
|
childrenCount = childrenCount,
|
||||||
guestCanJoin = guestCanJoin,
|
guestCanJoin = guestCanJoin,
|
||||||
heroes = heroes,
|
heroes = heroes.toImmutableList(),
|
||||||
joinRule = joinRule,
|
joinRule = joinRule,
|
||||||
numJoinedMembers = numJoinedMembers,
|
numJoinedMembers = numJoinedMembers,
|
||||||
roomId = roomId,
|
roomId = roomId,
|
||||||
|
|
@ -47,6 +48,6 @@ fun aSpaceRoom(
|
||||||
state = state,
|
state = state,
|
||||||
topic = topic,
|
topic = topic,
|
||||||
worldReadable = worldReadable,
|
worldReadable = worldReadable,
|
||||||
via = via,
|
via = via.toImmutableList(),
|
||||||
isDirect = isDirect
|
isDirect = isDirect
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue