Merge pull request #5468 from element-hq/feature/fga/space_tweaks
Spaces : some tweaks around ui
This commit is contained in:
commit
a497703a90
59 changed files with 248 additions and 173 deletions
|
|
@ -15,7 +15,7 @@ import io.element.android.libraries.matrix.api.room.join.JoinRule
|
|||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||
|
||||
data class SpaceRoom(
|
||||
val name: String?,
|
||||
val rawName: String?,
|
||||
val avatarUrl: String?,
|
||||
val canonicalAlias: RoomAlias?,
|
||||
val childrenCount: Int,
|
||||
|
|
@ -32,6 +32,20 @@ data class SpaceRoom(
|
|||
* The via parameters of the room.
|
||||
*/
|
||||
val via: List<String>,
|
||||
val isDirect: Boolean?,
|
||||
) {
|
||||
val isSpace = roomType == RoomType.Space
|
||||
|
||||
/**
|
||||
* Temporary logic to compute a name for direct rooms with no name.
|
||||
* This will be replaced by sdk logic in the future.
|
||||
*/
|
||||
val name = if (rawName == null && isDirect == true && heroes.size == 1) {
|
||||
val dmRecipient = heroes.first()
|
||||
dmRecipient.displayName
|
||||
} else {
|
||||
rawName
|
||||
}
|
||||
|
||||
val visibility = SpaceRoomVisibility.fromJoinRule(joinRule)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue