feature(space): introduce SpaceRoomVisibility and remove room count

This commit is contained in:
ganfra 2025-10-06 16:17:02 +02:00
parent 8d94df09ac
commit 17f9673a0f
12 changed files with 122 additions and 88 deletions

View file

@ -46,4 +46,6 @@ data class SpaceRoom(
} else {
rawName
}
val visibility = SpaceRoomVisibility.fromJoinRule(joinRule)
}

View file

@ -0,0 +1,26 @@
/*
* Copyright 2025 New Vector Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-Element-Commercial
* Please see LICENSE files in the repository root for full details.
*/
package io.element.android.libraries.matrix.api.spaces
import androidx.compose.runtime.Immutable
import io.element.android.libraries.matrix.api.room.join.JoinRule
@Immutable
sealed interface SpaceRoomVisibility {
data object Private : SpaceRoomVisibility
data object Public : SpaceRoomVisibility
data object Restricted : SpaceRoomVisibility
companion object {
fun fromJoinRule(joinRule: JoinRule?): SpaceRoomVisibility = when (joinRule) {
JoinRule.Public -> Public
is JoinRule.Restricted, is JoinRule.KnockRestricted -> Restricted
// Else fallback to Private
else -> Private
}
}
}