knock request : expose JoinRule from sdk

This commit is contained in:
ganfra 2024-12-16 13:10:23 +01:00
parent 759cd0f0e0
commit 5715f6054a
9 changed files with 91 additions and 0 deletions

View file

@ -12,6 +12,7 @@ import io.element.android.libraries.matrix.api.core.EventId
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.UserId
import io.element.android.libraries.matrix.api.room.join.JoinRule
import io.element.android.libraries.matrix.api.user.MatrixUser
import kotlinx.collections.immutable.ImmutableList
import kotlinx.collections.immutable.ImmutableMap
@ -27,6 +28,7 @@ data class MatrixRoomInfo(
val avatarUrl: String?,
val isDirect: Boolean,
val isPublic: Boolean,
val joinRule: JoinRule?,
val isSpace: Boolean,
val isTombstoned: Boolean,
val isFavorite: Boolean,

View file

@ -0,0 +1,15 @@
/*
* Copyright 2024 New Vector Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only
* Please see LICENSE in the repository root for full details.
*/
package io.element.android.libraries.matrix.api.room.join
import io.element.android.libraries.matrix.api.core.RoomId
sealed interface AllowRule {
data class RoomMembership(val roomId: RoomId) : AllowRule
data class Custom(val json: String) : AllowRule
}

View file

@ -0,0 +1,18 @@
/*
* Copyright 2024 New Vector Ltd.
*
* SPDX-License-Identifier: AGPL-3.0-only
* Please see LICENSE in the repository root for full details.
*/
package io.element.android.libraries.matrix.api.room.join
sealed interface JoinRule {
data object Public : JoinRule
data object Private: JoinRule
data object Knock: JoinRule
data object Invite: JoinRule
data class Restricted(val rules: List<AllowRule>): JoinRule
data class KnockRestricted(val rules: List<AllowRule>): JoinRule
data class Custom(val value: String): JoinRule
}