mirror of
https://github.com/Novaloop-AG/element-x-android.git
synced 2026-11-04 20:01:55 +00:00
Add reset method to SpaceRoomList
This commit is contained in:
+1
@@ -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()
|
||||||
}
|
}
|
||||||
|
|||||||
+6
@@ -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")
|
||||||
|
|||||||
+5
@@ -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()
|
||||||
}
|
}
|
||||||
|
|||||||
+5
@@ -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
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user