misc: extract toSelectRoomInfo method
This commit is contained in:
@@ -11,6 +11,7 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
|||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
||||||
import io.element.android.libraries.matrix.api.core.RoomAlias
|
import io.element.android.libraries.matrix.api.core.RoomAlias
|
||||||
import io.element.android.libraries.matrix.api.core.RoomId
|
import io.element.android.libraries.matrix.api.core.RoomId
|
||||||
|
import io.element.android.libraries.matrix.api.roomlist.RoomSummary
|
||||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||||
import kotlinx.collections.immutable.ImmutableList
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
|
|
||||||
@@ -28,3 +29,11 @@ data class SelectRoomInfo(
|
|||||||
size = size,
|
size = size,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun RoomSummary.toSelectRoomInfo() = SelectRoomInfo(
|
||||||
|
roomId = roomId,
|
||||||
|
name = info.name,
|
||||||
|
avatarUrl = info.avatarUrl,
|
||||||
|
heroes = info.heroes,
|
||||||
|
canonicalAlias = info.canonicalAlias,
|
||||||
|
)
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ 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.ui.model.SelectRoomInfo
|
import io.element.android.libraries.matrix.ui.model.SelectRoomInfo
|
||||||
|
import io.element.android.libraries.matrix.ui.model.toSelectRoomInfo
|
||||||
import kotlinx.collections.immutable.PersistentList
|
import kotlinx.collections.immutable.PersistentList
|
||||||
import kotlinx.collections.immutable.toPersistentList
|
import kotlinx.collections.immutable.toPersistentList
|
||||||
import kotlinx.coroutines.coroutineScope
|
import kotlinx.coroutines.coroutineScope
|
||||||
@@ -43,15 +44,7 @@ class RoomSelectSearchDataSource @Inject constructor(
|
|||||||
roomSummaries
|
roomSummaries
|
||||||
.filter { it.info.currentUserMembership == CurrentUserMembership.JOINED }
|
.filter { it.info.currentUserMembership == CurrentUserMembership.JOINED }
|
||||||
.distinctBy { it.roomId } // This should be removed once we're sure no duplicate Rooms can be received
|
.distinctBy { it.roomId } // This should be removed once we're sure no duplicate Rooms can be received
|
||||||
.map { roomSummary ->
|
.map { roomSummary -> roomSummary.toSelectRoomInfo() }
|
||||||
SelectRoomInfo(
|
|
||||||
roomId = roomSummary.roomId,
|
|
||||||
name = roomSummary.info.name,
|
|
||||||
avatarUrl = roomSummary.info.avatarUrl,
|
|
||||||
heroes = roomSummary.info.heroes,
|
|
||||||
canonicalAlias = roomSummary.info.canonicalAlias,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
.toPersistentList()
|
.toPersistentList()
|
||||||
}
|
}
|
||||||
.flowOn(coroutineDispatchers.computation)
|
.flowOn(coroutineDispatchers.computation)
|
||||||
|
|||||||
@@ -14,10 +14,9 @@ import com.google.common.truth.Truth.assertThat
|
|||||||
import io.element.android.libraries.designsystem.theme.components.SearchBarResultState
|
import io.element.android.libraries.designsystem.theme.components.SearchBarResultState
|
||||||
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.RoomSummary
|
|
||||||
import io.element.android.libraries.matrix.test.room.aRoomSummary
|
import io.element.android.libraries.matrix.test.room.aRoomSummary
|
||||||
import io.element.android.libraries.matrix.test.roomlist.FakeRoomListService
|
import io.element.android.libraries.matrix.test.roomlist.FakeRoomListService
|
||||||
import io.element.android.libraries.matrix.ui.components.aSelectRoomInfo
|
import io.element.android.libraries.matrix.ui.model.toSelectRoomInfo
|
||||||
import io.element.android.libraries.roomselect.api.RoomSelectMode
|
import io.element.android.libraries.roomselect.api.RoomSelectMode
|
||||||
import io.element.android.tests.testutils.WarmUpRule
|
import io.element.android.tests.testutils.WarmUpRule
|
||||||
import io.element.android.tests.testutils.testCoroutineDispatchers
|
import io.element.android.tests.testutils.testCoroutineDispatchers
|
||||||
@@ -123,12 +122,4 @@ class RoomSelectPresenterTest {
|
|||||||
coroutineDispatchers = testCoroutineDispatchers(),
|
coroutineDispatchers = testCoroutineDispatchers(),
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
|
||||||
private fun RoomSummary.toSelectRoomInfo() = aSelectRoomInfo(
|
|
||||||
roomId = roomId,
|
|
||||||
name = info.name,
|
|
||||||
avatarUrl = info.avatarUrl,
|
|
||||||
heroes = info.heroes,
|
|
||||||
canonicalAlias = info.canonicalAlias,
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user