Spaces : expose new SpaceServiceFilter

This commit is contained in:
ganfra 2026-01-30 17:37:54 +01:00
parent bc9a46a821
commit a60d07eb2a
6 changed files with 179 additions and 0 deletions

View file

@ -13,6 +13,7 @@ import kotlinx.coroutines.flow.SharedFlow
interface SpaceService {
val topLevelSpacesFlow: SharedFlow<List<SpaceRoom>>
val spaceFiltersFlow: SharedFlow<List<SpaceServiceFilter>>
suspend fun joinedParents(spaceId: RoomId): Result<List<SpaceRoom>>
suspend fun getSpaceRoom(spaceId: RoomId): SpaceRoom?

View file

@ -0,0 +1,24 @@
/*
* Copyright (c) 2025 Element Creations Ltd.
* 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 io.element.android.libraries.matrix.api.core.RoomId
/**
* Represents a space filter for filtering rooms by space membership.
*
* @property spaceRoom The space room associated with this filter.
* @property level The nesting level of the space (0 = top level, 1 = first level child, etc.).
* @property descendants The list of room IDs that are descendants of this space.
*/
data class SpaceServiceFilter(
val spaceRoom: SpaceRoom,
val level: Int,
val descendants: List<RoomId>,
)