Clean up unused imports and improve code documentation
This commit is contained in:
parent
b60cfaccb6
commit
48ec74c248
7 changed files with 14 additions and 21 deletions
|
|
@ -35,7 +35,6 @@ import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.async
|
import kotlinx.coroutines.async
|
||||||
import kotlinx.coroutines.awaitAll
|
import kotlinx.coroutines.awaitAll
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import kotlin.time.Duration.Companion.seconds
|
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
class AddRoomToSpacePresenter(
|
class AddRoomToSpacePresenter(
|
||||||
|
|
|
||||||
|
|
@ -16,14 +16,14 @@ import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import io.element.android.libraries.matrix.api.room.CurrentUserMembership
|
import io.element.android.libraries.matrix.api.room.CurrentUserMembership
|
||||||
import io.element.android.libraries.matrix.api.room.RoomInfo
|
import io.element.android.libraries.matrix.api.room.RoomInfo
|
||||||
import io.element.android.libraries.matrix.api.room.isDm
|
import io.element.android.libraries.matrix.api.room.isDm
|
||||||
import io.element.android.libraries.matrix.ui.model.SelectRoomInfo
|
|
||||||
import io.element.android.libraries.matrix.ui.model.toSelectRoomInfo
|
|
||||||
import io.element.android.libraries.matrix.api.room.recent.getRecentlyVisitedRoomInfoFlow
|
import io.element.android.libraries.matrix.api.room.recent.getRecentlyVisitedRoomInfoFlow
|
||||||
import io.element.android.libraries.matrix.api.roomlist.RoomList
|
import io.element.android.libraries.matrix.api.roomlist.RoomList
|
||||||
import io.element.android.libraries.matrix.api.roomlist.RoomListFilter
|
import io.element.android.libraries.matrix.api.roomlist.RoomListFilter
|
||||||
import io.element.android.libraries.matrix.api.roomlist.RoomListService
|
import io.element.android.libraries.matrix.api.roomlist.RoomListService
|
||||||
import io.element.android.libraries.matrix.api.roomlist.loadAllIncrementally
|
import io.element.android.libraries.matrix.api.roomlist.loadAllIncrementally
|
||||||
import io.element.android.libraries.matrix.api.spaces.SpaceRoomList
|
import io.element.android.libraries.matrix.api.spaces.SpaceRoomList
|
||||||
|
import io.element.android.libraries.matrix.ui.model.SelectRoomInfo
|
||||||
|
import io.element.android.libraries.matrix.ui.model.toSelectRoomInfo
|
||||||
import kotlinx.collections.immutable.ImmutableList
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
|
|
@ -67,15 +67,15 @@ class AddRoomToSpaceSearchDataSource(
|
||||||
rooms.map { it.roomId }.toSet()
|
rooms.map { it.roomId }.toSet()
|
||||||
}
|
}
|
||||||
|
|
||||||
// Track locally added rooms for partial failure cases
|
// Track locally added rooms for partial success handling.
|
||||||
private val addedRoomIds = MutableStateFlow<Set<RoomId>>(emptySet())
|
// These rooms will be filtered out from search results and suggestions.
|
||||||
|
private val addedRoomIdsFlow = MutableStateFlow<Set<RoomId>>(emptySet())
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Marks rooms as added to the space (for partial failure handling).
|
* Marks rooms as added to the space (for partial success handling).
|
||||||
* These rooms will be filtered out from search results and suggestions.
|
|
||||||
*/
|
*/
|
||||||
fun markAsAdded(roomIds: Set<RoomId>) {
|
fun markAsAdded(roomIds: Set<RoomId>) {
|
||||||
addedRoomIds.value += roomIds
|
addedRoomIdsFlow.value += roomIds
|
||||||
}
|
}
|
||||||
|
|
||||||
private val filterRoomPredicate: (RoomInfo, Set<RoomId>, Set<RoomId>) -> Boolean = { info, childIds, addedIds ->
|
private val filterRoomPredicate: (RoomInfo, Set<RoomId>, Set<RoomId>) -> Boolean = { info, childIds, addedIds ->
|
||||||
|
|
@ -89,7 +89,7 @@ class AddRoomToSpaceSearchDataSource(
|
||||||
val roomInfoList: Flow<ImmutableList<SelectRoomInfo>> = combine(
|
val roomInfoList: Flow<ImmutableList<SelectRoomInfo>> = combine(
|
||||||
roomList.filteredSummaries,
|
roomList.filteredSummaries,
|
||||||
spaceChildrenFlow,
|
spaceChildrenFlow,
|
||||||
addedRoomIds,
|
addedRoomIdsFlow,
|
||||||
) { roomSummaries, childIds, addedIds ->
|
) { roomSummaries, childIds, addedIds ->
|
||||||
roomSummaries
|
roomSummaries
|
||||||
.filter { filterRoomPredicate(it.info, childIds, addedIds) }
|
.filter { filterRoomPredicate(it.info, childIds, addedIds) }
|
||||||
|
|
@ -99,7 +99,7 @@ class AddRoomToSpaceSearchDataSource(
|
||||||
|
|
||||||
val suggestions: Flow<ImmutableList<SelectRoomInfo>> = combine(
|
val suggestions: Flow<ImmutableList<SelectRoomInfo>> = combine(
|
||||||
spaceChildrenFlow,
|
spaceChildrenFlow,
|
||||||
addedRoomIds,
|
addedRoomIdsFlow,
|
||||||
) { childIds, addedIds ->
|
) { childIds, addedIds ->
|
||||||
matrixClient
|
matrixClient
|
||||||
.getRecentlyVisitedRoomInfoFlow { filterRoomPredicate(it, childIds, addedIds) }
|
.getRecentlyVisitedRoomInfoFlow { filterRoomPredicate(it, childIds, addedIds) }
|
||||||
|
|
|
||||||
|
|
@ -25,12 +25,12 @@ import io.element.android.libraries.matrix.test.spaces.FakeSpaceRoomList
|
||||||
import io.element.android.libraries.matrix.test.spaces.FakeSpaceService
|
import io.element.android.libraries.matrix.test.spaces.FakeSpaceService
|
||||||
import io.element.android.libraries.matrix.ui.components.aSelectRoomInfo
|
import io.element.android.libraries.matrix.ui.components.aSelectRoomInfo
|
||||||
import io.element.android.libraries.matrix.ui.model.SelectRoomInfo
|
import io.element.android.libraries.matrix.ui.model.SelectRoomInfo
|
||||||
import kotlinx.collections.immutable.ImmutableList
|
|
||||||
import kotlinx.collections.immutable.toImmutableList
|
|
||||||
import io.element.android.tests.testutils.lambda.assert
|
import io.element.android.tests.testutils.lambda.assert
|
||||||
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
import io.element.android.tests.testutils.lambda.lambdaRecorder
|
||||||
import io.element.android.tests.testutils.test
|
import io.element.android.tests.testutils.test
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import io.element.android.tests.testutils.EventsRecorder
|
||||||
import io.element.android.tests.testutils.clickOn
|
import io.element.android.tests.testutils.clickOn
|
||||||
import io.element.android.tests.testutils.ensureCalledOnce
|
import io.element.android.tests.testutils.ensureCalledOnce
|
||||||
import io.element.android.tests.testutils.pressBack
|
import io.element.android.tests.testutils.pressBack
|
||||||
import kotlinx.collections.immutable.toPersistentList
|
import kotlinx.collections.immutable.toImmutableList
|
||||||
import org.junit.Rule
|
import org.junit.Rule
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import org.junit.rules.TestRule
|
import org.junit.rules.TestRule
|
||||||
|
|
@ -65,7 +65,7 @@ class AddRoomToSpaceViewTest {
|
||||||
val eventsRecorder = EventsRecorder<AddRoomToSpaceEvent>()
|
val eventsRecorder = EventsRecorder<AddRoomToSpaceEvent>()
|
||||||
rule.setAddRoomToSpaceView(
|
rule.setAddRoomToSpaceView(
|
||||||
anAddRoomToSpaceState(
|
anAddRoomToSpaceState(
|
||||||
selectedRooms = aSelectRoomInfoList().take(1).toPersistentList(),
|
selectedRooms = aSelectRoomInfoList().take(1).toImmutableList(),
|
||||||
eventSink = eventsRecorder,
|
eventSink = eventsRecorder,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,6 @@ import io.element.android.libraries.matrix.api.room.CurrentUserMembership
|
||||||
import io.element.android.libraries.matrix.api.room.RoomType
|
import io.element.android.libraries.matrix.api.room.RoomType
|
||||||
import io.element.android.libraries.matrix.api.room.join.JoinRoom
|
import io.element.android.libraries.matrix.api.room.join.JoinRoom
|
||||||
import io.element.android.libraries.matrix.api.spaces.SpaceRoomList
|
import io.element.android.libraries.matrix.api.spaces.SpaceRoomList
|
||||||
import io.element.android.libraries.matrix.api.spaces.loadAllIncrementally
|
|
||||||
import io.element.android.libraries.matrix.test.AN_EXCEPTION
|
import io.element.android.libraries.matrix.test.AN_EXCEPTION
|
||||||
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
import io.element.android.libraries.matrix.test.A_ROOM_ID
|
||||||
import io.element.android.libraries.matrix.test.A_ROOM_ID_2
|
import io.element.android.libraries.matrix.test.A_ROOM_ID_2
|
||||||
|
|
@ -50,7 +49,6 @@ import io.element.android.tests.testutils.test
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.test.TestScope
|
import kotlinx.coroutines.test.TestScope
|
||||||
import kotlinx.coroutines.test.advanceUntilIdle
|
import kotlinx.coroutines.test.advanceUntilIdle
|
||||||
import kotlinx.coroutines.test.runCurrent
|
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
import org.junit.Test
|
import org.junit.Test
|
||||||
import im.vector.app.features.analytics.plan.JoinedRoom as AnalyticsJoinedRoom
|
import im.vector.app.features.analytics.plan.JoinedRoom as AnalyticsJoinedRoom
|
||||||
|
|
@ -393,7 +391,7 @@ class SpacePresenterTest {
|
||||||
val removeChildFromSpaceResult = lambdaRecorder<RoomId, RoomId, Result<Unit>> { _, _ ->
|
val removeChildFromSpaceResult = lambdaRecorder<RoomId, RoomId, Result<Unit>> { _, _ ->
|
||||||
Result.success(Unit)
|
Result.success(Unit)
|
||||||
}
|
}
|
||||||
val resetResult = lambdaRecorder<Result<Unit>> { Result.success(Unit) }
|
val resetResult = lambdaRecorder<Result<Unit>> { Result.success(Unit) }
|
||||||
val aRoom = aSpaceRoom(
|
val aRoom = aSpaceRoom(
|
||||||
roomId = A_ROOM_ID,
|
roomId = A_ROOM_ID,
|
||||||
roomType = RoomType.Room,
|
roomType = RoomType.Room,
|
||||||
|
|
|
||||||
|
|
@ -12,12 +12,9 @@ import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.flow.Flow
|
import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.flow.first
|
|
||||||
import kotlinx.coroutines.flow.launchIn
|
import kotlinx.coroutines.flow.launchIn
|
||||||
import kotlinx.coroutines.flow.onEach
|
import kotlinx.coroutines.flow.onEach
|
||||||
import kotlinx.coroutines.withTimeoutOrNull
|
|
||||||
import java.util.Optional
|
import java.util.Optional
|
||||||
import kotlin.time.Duration
|
|
||||||
|
|
||||||
interface SpaceRoomList {
|
interface SpaceRoomList {
|
||||||
sealed interface PaginationStatus {
|
sealed interface PaginationStatus {
|
||||||
|
|
|
||||||
|
|
@ -17,7 +17,6 @@ import kotlinx.coroutines.CompletableDeferred
|
||||||
import kotlinx.coroutines.CoroutineScope
|
import kotlinx.coroutines.CoroutineScope
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.cancel
|
import kotlinx.coroutines.cancel
|
||||||
import kotlinx.coroutines.flow.Flow
|
|
||||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.launchIn
|
import kotlinx.coroutines.flow.launchIn
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue