mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-03 16:10:00 +00:00
space service : expose methods from sdk
This commit is contained in:
+4
@@ -15,6 +15,10 @@ interface SpaceService {
|
|||||||
val spaceRoomsFlow: SharedFlow<List<SpaceRoom>>
|
val spaceRoomsFlow: SharedFlow<List<SpaceRoom>>
|
||||||
suspend fun joinedSpaces(): Result<List<SpaceRoom>>
|
suspend fun joinedSpaces(): Result<List<SpaceRoom>>
|
||||||
|
|
||||||
|
suspend fun joinedParents(spaceId: RoomId): Result<List<SpaceRoom>>
|
||||||
|
|
||||||
|
suspend fun getSpaceRoom(spaceId: RoomId): SpaceRoom?
|
||||||
|
|
||||||
fun spaceRoomList(id: RoomId): SpaceRoomList
|
fun spaceRoomList(id: RoomId): SpaceRoomList
|
||||||
|
|
||||||
fun getLeaveSpaceHandle(spaceId: RoomId): LeaveSpaceHandle
|
fun getLeaveSpaceHandle(spaceId: RoomId): LeaveSpaceHandle
|
||||||
|
|||||||
+19
-4
@@ -51,13 +51,28 @@ class RustSpaceService(
|
|||||||
|
|
||||||
override suspend fun joinedSpaces(): Result<List<SpaceRoom>> = withContext(sessionDispatcher) {
|
override suspend fun joinedSpaces(): Result<List<SpaceRoom>> = withContext(sessionDispatcher) {
|
||||||
runCatchingExceptions {
|
runCatchingExceptions {
|
||||||
innerSpaceService.topLevelJoinedSpaces()
|
innerSpaceService
|
||||||
.map {
|
.topLevelJoinedSpaces()
|
||||||
it.let(spaceRoomMapper::map)
|
.map(spaceRoomMapper::map)
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun joinedParents(spaceId: RoomId): Result<List<SpaceRoom>> = withContext(sessionDispatcher) {
|
||||||
|
runCatchingExceptions {
|
||||||
|
innerSpaceService
|
||||||
|
.joinedParentsOfChild(spaceId.value)
|
||||||
|
.map(spaceRoomMapper::map)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun getSpaceRoom(spaceId: RoomId): SpaceRoom? = withContext(sessionDispatcher) {
|
||||||
|
runCatchingExceptions {
|
||||||
|
innerSpaceService.getSpaceRoom(spaceId.value)?.let { spaceRoom ->
|
||||||
|
spaceRoomMapper.map(spaceRoom)
|
||||||
|
}
|
||||||
|
}.getOrNull()
|
||||||
|
}
|
||||||
|
|
||||||
override fun spaceRoomList(id: RoomId): SpaceRoomList {
|
override fun spaceRoomList(id: RoomId): SpaceRoomList {
|
||||||
val childCoroutineScope = sessionCoroutineScope.childScope(sessionDispatcher, "SpaceRoomListScope-$this")
|
val childCoroutineScope = sessionCoroutineScope.childScope(sessionDispatcher, "SpaceRoomListScope-$this")
|
||||||
return RustSpaceRoomList(
|
return RustSpaceRoomList(
|
||||||
|
|||||||
+10
@@ -23,6 +23,8 @@ class FakeSpaceService(
|
|||||||
private val joinedSpacesResult: () -> Result<List<SpaceRoom>> = { lambdaError() },
|
private val joinedSpacesResult: () -> Result<List<SpaceRoom>> = { lambdaError() },
|
||||||
private val spaceRoomListResult: (RoomId) -> SpaceRoomList = { lambdaError() },
|
private val spaceRoomListResult: (RoomId) -> SpaceRoomList = { lambdaError() },
|
||||||
private val leaveSpaceHandleResult: (RoomId) -> LeaveSpaceHandle = { lambdaError() },
|
private val leaveSpaceHandleResult: (RoomId) -> LeaveSpaceHandle = { lambdaError() },
|
||||||
|
private val joinedParentsResult: (RoomId) -> Result<List<SpaceRoom>> = { lambdaError() },
|
||||||
|
private val getSpaceRoomResult: (RoomId) -> SpaceRoom? = { lambdaError() },
|
||||||
) : SpaceService {
|
) : SpaceService {
|
||||||
private val _spaceRoomsFlow = MutableSharedFlow<List<SpaceRoom>>()
|
private val _spaceRoomsFlow = MutableSharedFlow<List<SpaceRoom>>()
|
||||||
override val spaceRoomsFlow: SharedFlow<List<SpaceRoom>>
|
override val spaceRoomsFlow: SharedFlow<List<SpaceRoom>>
|
||||||
@@ -36,6 +38,14 @@ class FakeSpaceService(
|
|||||||
return joinedSpacesResult()
|
return joinedSpacesResult()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun joinedParents(spaceId: RoomId): Result<List<SpaceRoom>> {
|
||||||
|
return joinedParentsResult(spaceId)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun getSpaceRoom(spaceId: RoomId): SpaceRoom? {
|
||||||
|
return getSpaceRoomResult(spaceId)
|
||||||
|
}
|
||||||
|
|
||||||
override fun spaceRoomList(id: RoomId): SpaceRoomList {
|
override fun spaceRoomList(id: RoomId): SpaceRoomList {
|
||||||
return spaceRoomListResult(id)
|
return spaceRoomListResult(id)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user