Add reset method to SpaceRoomList
This commit is contained in:
parent
692302df5c
commit
33eb848c94
4 changed files with 17 additions and 0 deletions
|
|
@ -26,6 +26,7 @@ interface SpaceRoomList {
|
||||||
val spaceRoomsFlow: Flow<List<SpaceRoom>>
|
val spaceRoomsFlow: Flow<List<SpaceRoom>>
|
||||||
val paginationStatusFlow: StateFlow<PaginationStatus>
|
val paginationStatusFlow: StateFlow<PaginationStatus>
|
||||||
suspend fun paginate(): Result<Unit>
|
suspend fun paginate(): Result<Unit>
|
||||||
|
suspend fun reset(): Result<Unit>
|
||||||
|
|
||||||
fun destroy()
|
fun destroy()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,12 @@ class RustSpaceRoomList(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun reset(): Result<Unit> {
|
||||||
|
return runCatchingExceptions {
|
||||||
|
innerCompletable.await().reset()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@OptIn(ExperimentalCoroutinesApi::class)
|
@OptIn(ExperimentalCoroutinesApi::class)
|
||||||
override fun destroy() {
|
override fun destroy() {
|
||||||
Timber.d("Destroying SpaceRoomList $roomId")
|
Timber.d("Destroying SpaceRoomList $roomId")
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ import uniffi.matrix_sdk_ui.SpaceRoomListPaginationState
|
||||||
|
|
||||||
class FakeFfiSpaceRoomList(
|
class FakeFfiSpaceRoomList(
|
||||||
private val paginateResult: () -> Unit = { lambdaError() },
|
private val paginateResult: () -> Unit = { lambdaError() },
|
||||||
|
private val resetResult: () -> Unit = { lambdaError() },
|
||||||
private val paginationStateResult: () -> SpaceRoomListPaginationState = { lambdaError() },
|
private val paginationStateResult: () -> SpaceRoomListPaginationState = { lambdaError() },
|
||||||
private val roomsResult: () -> List<SpaceRoom> = { lambdaError() },
|
private val roomsResult: () -> List<SpaceRoom> = { lambdaError() },
|
||||||
) : SpaceRoomList(NoHandle) {
|
) : SpaceRoomList(NoHandle) {
|
||||||
|
|
@ -31,6 +32,10 @@ class FakeFfiSpaceRoomList(
|
||||||
paginateResult()
|
paginateResult()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun reset() = simulateLongTask {
|
||||||
|
resetResult()
|
||||||
|
}
|
||||||
|
|
||||||
override fun paginationState(): SpaceRoomListPaginationState {
|
override fun paginationState(): SpaceRoomListPaginationState {
|
||||||
return paginationStateResult()
|
return paginationStateResult()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ class FakeSpaceRoomList(
|
||||||
initialSpaceRoomsValue: List<SpaceRoom> = emptyList(),
|
initialSpaceRoomsValue: List<SpaceRoom> = emptyList(),
|
||||||
initialSpaceRoomList: SpaceRoomList.PaginationStatus = SpaceRoomList.PaginationStatus.Loading,
|
initialSpaceRoomList: SpaceRoomList.PaginationStatus = SpaceRoomList.PaginationStatus.Loading,
|
||||||
private val paginateResult: () -> Result<Unit> = { lambdaError() },
|
private val paginateResult: () -> Result<Unit> = { lambdaError() },
|
||||||
|
private val resetResult: () -> Result<Unit> = { lambdaError() },
|
||||||
) : SpaceRoomList {
|
) : SpaceRoomList {
|
||||||
private val currentSpaceMutableStateFlow: MutableStateFlow<Optional<SpaceRoom>> = MutableStateFlow(Optional.ofNullable(initialSpaceFlowValue))
|
private val currentSpaceMutableStateFlow: MutableStateFlow<Optional<SpaceRoom>> = MutableStateFlow(Optional.ofNullable(initialSpaceFlowValue))
|
||||||
override val currentSpaceFlow: StateFlow<Optional<SpaceRoom>> = currentSpaceMutableStateFlow.asStateFlow()
|
override val currentSpaceFlow: StateFlow<Optional<SpaceRoom>> = currentSpaceMutableStateFlow.asStateFlow()
|
||||||
|
|
@ -52,6 +53,10 @@ class FakeSpaceRoomList(
|
||||||
paginateResult()
|
paginateResult()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override suspend fun reset(): Result<Unit> = simulateLongTask {
|
||||||
|
resetResult()
|
||||||
|
}
|
||||||
|
|
||||||
override fun destroy() {
|
override fun destroy() {
|
||||||
// No op
|
// No op
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue