Rename MatrixUserDataSource to UserListDataSource
This commit is contained in:
parent
5364bbd2cb
commit
4aad2d5ce2
16 changed files with 43 additions and 43 deletions
|
|
@ -16,13 +16,13 @@
|
||||||
|
|
||||||
package io.element.android.features.createroom.impl
|
package io.element.android.features.createroom.impl
|
||||||
|
|
||||||
import io.element.android.features.userlist.api.MatrixUserDataSource
|
import io.element.android.features.userlist.api.UserListDataSource
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.ui.model.MatrixUser
|
import io.element.android.libraries.matrix.ui.model.MatrixUser
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
// TODO this is empty as we currently don't have an endpoint to perform user search
|
// TODO this is empty as we currently don't have an endpoint to perform user search
|
||||||
class AllMatrixUsersDataSource @Inject constructor() : MatrixUserDataSource {
|
class AllMatrixUsersDataSource @Inject constructor() : UserListDataSource {
|
||||||
override suspend fun search(query: String): List<MatrixUser> {
|
override suspend fun search(query: String): List<MatrixUser> {
|
||||||
return emptyList()
|
return emptyList()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,8 @@ import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.collectAsState
|
import androidx.compose.runtime.collectAsState
|
||||||
import io.element.android.features.createroom.impl.CreateRoomConfig
|
import io.element.android.features.createroom.impl.CreateRoomConfig
|
||||||
import io.element.android.features.createroom.impl.CreateRoomDataStore
|
import io.element.android.features.createroom.impl.CreateRoomDataStore
|
||||||
import io.element.android.features.userlist.api.MatrixUserDataSource
|
|
||||||
import io.element.android.features.userlist.api.SelectionMode
|
import io.element.android.features.userlist.api.SelectionMode
|
||||||
|
import io.element.android.features.userlist.api.UserListDataSource
|
||||||
import io.element.android.features.userlist.api.UserListPresenter
|
import io.element.android.features.userlist.api.UserListPresenter
|
||||||
import io.element.android.features.userlist.api.UserListPresenterArgs
|
import io.element.android.features.userlist.api.UserListPresenterArgs
|
||||||
import io.element.android.libraries.architecture.Presenter
|
import io.element.android.libraries.architecture.Presenter
|
||||||
|
|
@ -31,14 +31,14 @@ import javax.inject.Named
|
||||||
|
|
||||||
class AddPeoplePresenter @Inject constructor(
|
class AddPeoplePresenter @Inject constructor(
|
||||||
private val userListPresenterFactory: UserListPresenter.Factory,
|
private val userListPresenterFactory: UserListPresenter.Factory,
|
||||||
@Named("AllUsers") private val matrixUserDataSource: MatrixUserDataSource,
|
@Named("AllUsers") private val userListDataSource: UserListDataSource,
|
||||||
private val dataStore: CreateRoomDataStore,
|
private val dataStore: CreateRoomDataStore,
|
||||||
) : Presenter<AddPeopleState> {
|
) : Presenter<AddPeopleState> {
|
||||||
|
|
||||||
private val userListPresenter by lazy {
|
private val userListPresenter by lazy {
|
||||||
userListPresenterFactory.create(
|
userListPresenterFactory.create(
|
||||||
UserListPresenterArgs(selectionMode = SelectionMode.Multiple),
|
UserListPresenterArgs(selectionMode = SelectionMode.Multiple),
|
||||||
matrixUserDataSource,
|
userListDataSource,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import com.squareup.anvil.annotations.ContributesTo
|
||||||
import dagger.Binds
|
import dagger.Binds
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import io.element.android.features.createroom.impl.AllMatrixUsersDataSource
|
import io.element.android.features.createroom.impl.AllMatrixUsersDataSource
|
||||||
import io.element.android.features.userlist.api.MatrixUserDataSource
|
import io.element.android.features.userlist.api.UserListDataSource
|
||||||
import io.element.android.libraries.di.AppScope
|
import io.element.android.libraries.di.AppScope
|
||||||
import javax.inject.Named
|
import javax.inject.Named
|
||||||
|
|
||||||
|
|
@ -30,6 +30,6 @@ interface CreateRoomModule {
|
||||||
|
|
||||||
@Binds
|
@Binds
|
||||||
@Named("AllUsers")
|
@Named("AllUsers")
|
||||||
fun bindAllUserListDataSource(dataSource: AllMatrixUsersDataSource): MatrixUserDataSource
|
fun bindAllUserListDataSource(dataSource: AllMatrixUsersDataSource): UserListDataSource
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,8 @@ import androidx.compose.runtime.MutableState
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import androidx.compose.runtime.rememberCoroutineScope
|
import androidx.compose.runtime.rememberCoroutineScope
|
||||||
import io.element.android.features.userlist.api.MatrixUserDataSource
|
|
||||||
import io.element.android.features.userlist.api.SelectionMode
|
import io.element.android.features.userlist.api.SelectionMode
|
||||||
|
import io.element.android.features.userlist.api.UserListDataSource
|
||||||
import io.element.android.features.userlist.api.UserListPresenter
|
import io.element.android.features.userlist.api.UserListPresenter
|
||||||
import io.element.android.features.userlist.api.UserListPresenterArgs
|
import io.element.android.features.userlist.api.UserListPresenterArgs
|
||||||
import io.element.android.libraries.architecture.Async
|
import io.element.android.libraries.architecture.Async
|
||||||
|
|
@ -38,14 +38,14 @@ import javax.inject.Named
|
||||||
|
|
||||||
class CreateRoomRootPresenter @Inject constructor(
|
class CreateRoomRootPresenter @Inject constructor(
|
||||||
private val presenterFactory: UserListPresenter.Factory,
|
private val presenterFactory: UserListPresenter.Factory,
|
||||||
@Named("AllUsers") private val matrixUserDataSource: MatrixUserDataSource,
|
@Named("AllUsers") private val userListDataSource: UserListDataSource,
|
||||||
private val matrixClient: MatrixClient,
|
private val matrixClient: MatrixClient,
|
||||||
) : Presenter<CreateRoomRootState> {
|
) : Presenter<CreateRoomRootState> {
|
||||||
|
|
||||||
private val presenter by lazy {
|
private val presenter by lazy {
|
||||||
presenterFactory.create(
|
presenterFactory.create(
|
||||||
UserListPresenterArgs(selectionMode = SelectionMode.Single),
|
UserListPresenterArgs(selectionMode = SelectionMode.Single),
|
||||||
matrixUserDataSource,
|
userListDataSource,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,7 @@ import app.cash.molecule.RecompositionClock
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.userlist.test.FakeMatrixUserDataSource
|
import io.element.android.features.userlist.test.FakeUserListDataSource
|
||||||
import io.element.android.features.userlist.test.FakeUserListPresenterFactory
|
import io.element.android.features.userlist.test.FakeUserListPresenterFactory
|
||||||
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
|
|
@ -35,7 +35,7 @@ class AddPeoplePresenterTests {
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setup() {
|
fun setup() {
|
||||||
presenter = AddPeoplePresenter(FakeUserListPresenterFactory(), FakeMatrixUserDataSource())
|
presenter = AddPeoplePresenter(FakeUserListPresenterFactory(), FakeUserListDataSource())
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
import io.element.android.features.userlist.api.aUserListState
|
import io.element.android.features.userlist.api.aUserListState
|
||||||
import io.element.android.features.userlist.test.FakeMatrixUserDataSource
|
import io.element.android.features.userlist.test.FakeUserListDataSource
|
||||||
import io.element.android.features.userlist.test.FakeUserListPresenter
|
import io.element.android.features.userlist.test.FakeUserListPresenter
|
||||||
import io.element.android.features.userlist.test.FakeUserListPresenterFactory
|
import io.element.android.features.userlist.test.FakeUserListPresenterFactory
|
||||||
import io.element.android.libraries.architecture.Async
|
import io.element.android.libraries.architecture.Async
|
||||||
|
|
@ -41,7 +41,7 @@ import org.junit.Test
|
||||||
|
|
||||||
class CreateRoomRootPresenterTests {
|
class CreateRoomRootPresenterTests {
|
||||||
|
|
||||||
private lateinit var userListDataSource: FakeMatrixUserDataSource
|
private lateinit var userListDataSource: FakeUserListDataSource
|
||||||
private lateinit var presenter: CreateRoomRootPresenter
|
private lateinit var presenter: CreateRoomRootPresenter
|
||||||
private lateinit var fakeUserListPresenter: FakeUserListPresenter
|
private lateinit var fakeUserListPresenter: FakeUserListPresenter
|
||||||
private lateinit var fakeMatrixClient: FakeMatrixClient
|
private lateinit var fakeMatrixClient: FakeMatrixClient
|
||||||
|
|
@ -50,7 +50,7 @@ class CreateRoomRootPresenterTests {
|
||||||
fun setup() {
|
fun setup() {
|
||||||
fakeUserListPresenter = FakeUserListPresenter()
|
fakeUserListPresenter = FakeUserListPresenter()
|
||||||
fakeMatrixClient = FakeMatrixClient()
|
fakeMatrixClient = FakeMatrixClient()
|
||||||
userListDataSource = FakeMatrixUserDataSource()
|
userListDataSource = FakeUserListDataSource()
|
||||||
presenter = CreateRoomRootPresenter(FakeUserListPresenterFactory(fakeUserListPresenter), userListDataSource, fakeMatrixClient)
|
presenter = CreateRoomRootPresenter(FakeUserListPresenterFactory(fakeUserListPresenter), userListDataSource, fakeMatrixClient)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -19,8 +19,8 @@ package io.element.android.features.roomdetails.impl.di
|
||||||
import com.squareup.anvil.annotations.ContributesTo
|
import com.squareup.anvil.annotations.ContributesTo
|
||||||
import dagger.Binds
|
import dagger.Binds
|
||||||
import dagger.Module
|
import dagger.Module
|
||||||
import io.element.android.features.roomdetails.impl.members.RoomMatrixUserDataSource
|
import io.element.android.features.roomdetails.impl.members.RoomUserListDataSource
|
||||||
import io.element.android.features.userlist.api.MatrixUserDataSource
|
import io.element.android.features.userlist.api.UserListDataSource
|
||||||
import io.element.android.libraries.di.RoomScope
|
import io.element.android.libraries.di.RoomScope
|
||||||
import javax.inject.Named
|
import javax.inject.Named
|
||||||
|
|
||||||
|
|
@ -30,6 +30,6 @@ interface RoomMemberModule {
|
||||||
|
|
||||||
@Binds
|
@Binds
|
||||||
@Named("RoomMembers")
|
@Named("RoomMembers")
|
||||||
fun bindRoomMemberUserListDataSource(dataSource: RoomMatrixUserDataSource): MatrixUserDataSource
|
fun bindRoomMemberUserListDataSource(dataSource: RoomUserListDataSource): UserListDataSource
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.mutableStateOf
|
import androidx.compose.runtime.mutableStateOf
|
||||||
import androidx.compose.runtime.remember
|
import androidx.compose.runtime.remember
|
||||||
import io.element.android.features.userlist.api.SelectionMode
|
import io.element.android.features.userlist.api.SelectionMode
|
||||||
import io.element.android.features.userlist.api.MatrixUserDataSource
|
import io.element.android.features.userlist.api.UserListDataSource
|
||||||
import io.element.android.features.userlist.api.UserListPresenter
|
import io.element.android.features.userlist.api.UserListPresenter
|
||||||
import io.element.android.features.userlist.api.UserListPresenterArgs
|
import io.element.android.features.userlist.api.UserListPresenterArgs
|
||||||
import io.element.android.libraries.architecture.Async
|
import io.element.android.libraries.architecture.Async
|
||||||
|
|
@ -36,13 +36,13 @@ import javax.inject.Named
|
||||||
|
|
||||||
class RoomMemberListPresenter @Inject constructor(
|
class RoomMemberListPresenter @Inject constructor(
|
||||||
private val userListPresenterFactory: UserListPresenter.Factory,
|
private val userListPresenterFactory: UserListPresenter.Factory,
|
||||||
@Named("RoomMembers") private val matrixUserDataSource: MatrixUserDataSource,
|
@Named("RoomMembers") private val userListDataSource: UserListDataSource,
|
||||||
) : Presenter<RoomMemberListState> {
|
) : Presenter<RoomMemberListState> {
|
||||||
|
|
||||||
private val userListPresenter by lazy {
|
private val userListPresenter by lazy {
|
||||||
userListPresenterFactory.create(
|
userListPresenterFactory.create(
|
||||||
UserListPresenterArgs(selectionMode = SelectionMode.Single),
|
UserListPresenterArgs(selectionMode = SelectionMode.Single),
|
||||||
matrixUserDataSource,
|
userListDataSource,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -52,7 +52,7 @@ class RoomMemberListPresenter @Inject constructor(
|
||||||
val allUsers = remember { mutableStateOf<Async<ImmutableList<MatrixUser>>>(Async.Loading()) }
|
val allUsers = remember { mutableStateOf<Async<ImmutableList<MatrixUser>>>(Async.Loading()) }
|
||||||
LaunchedEffect(Unit) {
|
LaunchedEffect(Unit) {
|
||||||
withContext(Dispatchers.IO) {
|
withContext(Dispatchers.IO) {
|
||||||
allUsers.value = Async.Success(matrixUserDataSource.search("").toImmutableList())
|
allUsers.value = Async.Success(userListDataSource.search("").toImmutableList())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return RoomMemberListState(
|
return RoomMemberListState(
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package io.element.android.features.roomdetails.impl.members
|
package io.element.android.features.roomdetails.impl.members
|
||||||
|
|
||||||
import io.element.android.features.userlist.api.MatrixUserDataSource
|
import io.element.android.features.userlist.api.UserListDataSource
|
||||||
import io.element.android.libraries.core.bool.orFalse
|
import io.element.android.libraries.core.bool.orFalse
|
||||||
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
|
|
@ -25,9 +25,9 @@ import io.element.android.libraries.matrix.api.room.RoomMember
|
||||||
import io.element.android.libraries.matrix.ui.model.MatrixUser
|
import io.element.android.libraries.matrix.ui.model.MatrixUser
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
class RoomMatrixUserDataSource @Inject constructor(
|
class RoomUserListDataSource @Inject constructor(
|
||||||
private val room: MatrixRoom
|
private val room: MatrixRoom
|
||||||
) : MatrixUserDataSource {
|
) : UserListDataSource {
|
||||||
|
|
||||||
override suspend fun search(query: String): List<MatrixUser> {
|
override suspend fun search(query: String): List<MatrixUser> {
|
||||||
return room.members().filter { member ->
|
return room.members().filter { member ->
|
||||||
|
|
@ -22,11 +22,11 @@ import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth
|
import com.google.common.truth.Truth
|
||||||
import io.element.android.features.roomdetails.impl.members.RoomMemberListPresenter
|
import io.element.android.features.roomdetails.impl.members.RoomMemberListPresenter
|
||||||
import io.element.android.features.userlist.api.SelectionMode
|
import io.element.android.features.userlist.api.SelectionMode
|
||||||
import io.element.android.features.userlist.api.MatrixUserDataSource
|
import io.element.android.features.userlist.api.UserListDataSource
|
||||||
import io.element.android.features.userlist.api.UserListPresenter
|
import io.element.android.features.userlist.api.UserListPresenter
|
||||||
import io.element.android.features.userlist.api.UserListPresenterArgs
|
import io.element.android.features.userlist.api.UserListPresenterArgs
|
||||||
import io.element.android.features.userlist.impl.DefaultUserListPresenter
|
import io.element.android.features.userlist.impl.DefaultUserListPresenter
|
||||||
import io.element.android.features.userlist.test.FakeMatrixUserDataSource
|
import io.element.android.features.userlist.test.FakeUserListDataSource
|
||||||
import io.element.android.libraries.architecture.Async
|
import io.element.android.libraries.architecture.Async
|
||||||
import io.element.android.libraries.matrix.ui.components.aMatrixUser
|
import io.element.android.libraries.matrix.ui.components.aMatrixUser
|
||||||
import kotlinx.coroutines.test.runTest
|
import kotlinx.coroutines.test.runTest
|
||||||
|
|
@ -38,11 +38,11 @@ class RoomMemberListPresenterTests {
|
||||||
@Test
|
@Test
|
||||||
fun `present - search is done automatically on start, but is async`() = runTest {
|
fun `present - search is done automatically on start, but is async`() = runTest {
|
||||||
val searchResult = listOf(aMatrixUser())
|
val searchResult = listOf(aMatrixUser())
|
||||||
val userListDataSource = FakeMatrixUserDataSource().apply {
|
val userListDataSource = FakeUserListDataSource().apply {
|
||||||
givenSearchResult(searchResult)
|
givenSearchResult(searchResult)
|
||||||
}
|
}
|
||||||
val userListFactory = object : UserListPresenter.Factory {
|
val userListFactory = object : UserListPresenter.Factory {
|
||||||
override fun create(args: UserListPresenterArgs, dataSource: MatrixUserDataSource) = DefaultUserListPresenter(args, dataSource)
|
override fun create(args: UserListPresenterArgs, dataSource: UserListDataSource) = DefaultUserListPresenter(args, dataSource)
|
||||||
}
|
}
|
||||||
val presenter = RoomMemberListPresenter(userListFactory, userListDataSource)
|
val presenter = RoomMemberListPresenter(userListFactory, userListDataSource)
|
||||||
moleculeFlow(RecompositionClock.Immediate) {
|
moleculeFlow(RecompositionClock.Immediate) {
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ package io.element.android.features.userlist.api
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.ui.model.MatrixUser
|
import io.element.android.libraries.matrix.ui.model.MatrixUser
|
||||||
|
|
||||||
interface MatrixUserDataSource {
|
interface UserListDataSource {
|
||||||
suspend fun search(query: String): List<MatrixUser>
|
suspend fun search(query: String): List<MatrixUser>
|
||||||
suspend fun getProfile(userId: UserId): MatrixUser?
|
suspend fun getProfile(userId: UserId): MatrixUser?
|
||||||
}
|
}
|
||||||
|
|
@ -21,6 +21,6 @@ import io.element.android.libraries.architecture.Presenter
|
||||||
interface UserListPresenter : Presenter<UserListState> {
|
interface UserListPresenter : Presenter<UserListState> {
|
||||||
|
|
||||||
interface Factory {
|
interface Factory {
|
||||||
fun create(args: UserListPresenterArgs, matrixUserDataSource: MatrixUserDataSource): UserListPresenter
|
fun create(args: UserListPresenterArgs, userListDataSource: UserListDataSource): UserListPresenter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ import com.squareup.anvil.annotations.ContributesBinding
|
||||||
import dagger.assisted.Assisted
|
import dagger.assisted.Assisted
|
||||||
import dagger.assisted.AssistedFactory
|
import dagger.assisted.AssistedFactory
|
||||||
import dagger.assisted.AssistedInject
|
import dagger.assisted.AssistedInject
|
||||||
import io.element.android.features.userlist.api.MatrixUserDataSource
|
import io.element.android.features.userlist.api.UserListDataSource
|
||||||
import io.element.android.features.userlist.api.UserListEvents
|
import io.element.android.features.userlist.api.UserListEvents
|
||||||
import io.element.android.features.userlist.api.UserListPresenterArgs
|
import io.element.android.features.userlist.api.UserListPresenterArgs
|
||||||
import io.element.android.features.userlist.api.UserListState
|
import io.element.android.features.userlist.api.UserListState
|
||||||
|
|
@ -48,13 +48,13 @@ import kotlinx.coroutines.launch
|
||||||
|
|
||||||
class DefaultUserListPresenter @AssistedInject constructor(
|
class DefaultUserListPresenter @AssistedInject constructor(
|
||||||
@Assisted val args: UserListPresenterArgs,
|
@Assisted val args: UserListPresenterArgs,
|
||||||
@Assisted val matrixUserDataSource: MatrixUserDataSource,
|
@Assisted val userListDataSource: UserListDataSource,
|
||||||
) : UserListPresenter {
|
) : UserListPresenter {
|
||||||
|
|
||||||
@AssistedFactory
|
@AssistedFactory
|
||||||
@ContributesBinding(SessionScope::class)
|
@ContributesBinding(SessionScope::class)
|
||||||
interface DefaultUserListFactory : UserListPresenter.Factory {
|
interface DefaultUserListFactory : UserListPresenter.Factory {
|
||||||
override fun create(args: UserListPresenterArgs, matrixUserDataSource: MatrixUserDataSource): DefaultUserListPresenter
|
override fun create(args: UserListPresenterArgs, userListDataSource: UserListDataSource): DefaultUserListPresenter
|
||||||
}
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
|
@ -110,9 +110,9 @@ class DefaultUserListPresenter @AssistedInject constructor(
|
||||||
|
|
||||||
private suspend fun performSearch(query: String): ImmutableList<MatrixUser> {
|
private suspend fun performSearch(query: String): ImmutableList<MatrixUser> {
|
||||||
val isMatrixId = MatrixPatterns.isUserId(query)
|
val isMatrixId = MatrixPatterns.isUserId(query)
|
||||||
val results = matrixUserDataSource.search(query).toMutableList()
|
val results = userListDataSource.search(query).toMutableList()
|
||||||
if (isMatrixId && results.none { it.id.value == query }) {
|
if (isMatrixId && results.none { it.id.value == query }) {
|
||||||
val getProfileResult: MatrixUser? = matrixUserDataSource.getProfile(UserId(query))
|
val getProfileResult: MatrixUser? = userListDataSource.getProfile(UserId(query))
|
||||||
val profile = getProfileResult ?: MatrixUser(UserId(query))
|
val profile = getProfileResult ?: MatrixUser(UserId(query))
|
||||||
results.add(0, profile)
|
results.add(0, profile)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -21,10 +21,10 @@ import app.cash.molecule.RecompositionClock
|
||||||
import app.cash.molecule.moleculeFlow
|
import app.cash.molecule.moleculeFlow
|
||||||
import app.cash.turbine.test
|
import app.cash.turbine.test
|
||||||
import com.google.common.truth.Truth.assertThat
|
import com.google.common.truth.Truth.assertThat
|
||||||
|
import io.element.android.features.userlist.api.SelectionMode
|
||||||
import io.element.android.features.userlist.api.UserListEvents
|
import io.element.android.features.userlist.api.UserListEvents
|
||||||
import io.element.android.features.userlist.api.UserListPresenterArgs
|
import io.element.android.features.userlist.api.UserListPresenterArgs
|
||||||
import io.element.android.features.userlist.api.SelectionMode
|
import io.element.android.features.userlist.test.FakeUserListDataSource
|
||||||
import io.element.android.features.userlist.test.FakeMatrixUserDataSource
|
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.ui.components.aMatrixUser
|
import io.element.android.libraries.matrix.ui.components.aMatrixUser
|
||||||
import io.element.android.libraries.matrix.ui.model.MatrixUser
|
import io.element.android.libraries.matrix.ui.model.MatrixUser
|
||||||
|
|
@ -37,7 +37,7 @@ import org.junit.Test
|
||||||
@OptIn(ExperimentalCoroutinesApi::class)
|
@OptIn(ExperimentalCoroutinesApi::class)
|
||||||
class DefaultUserListPresenterTests {
|
class DefaultUserListPresenterTests {
|
||||||
|
|
||||||
private val userListDataSource = FakeMatrixUserDataSource()
|
private val userListDataSource = FakeUserListDataSource()
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - initial state for single selection`() = runTest {
|
fun `present - initial state for single selection`() = runTest {
|
||||||
|
|
|
||||||
|
|
@ -16,11 +16,11 @@
|
||||||
|
|
||||||
package io.element.android.features.userlist.test
|
package io.element.android.features.userlist.test
|
||||||
|
|
||||||
import io.element.android.features.userlist.api.MatrixUserDataSource
|
import io.element.android.features.userlist.api.UserListDataSource
|
||||||
import io.element.android.libraries.matrix.api.core.UserId
|
import io.element.android.libraries.matrix.api.core.UserId
|
||||||
import io.element.android.libraries.matrix.ui.model.MatrixUser
|
import io.element.android.libraries.matrix.ui.model.MatrixUser
|
||||||
|
|
||||||
class FakeMatrixUserDataSource : MatrixUserDataSource {
|
class FakeUserListDataSource : UserListDataSource {
|
||||||
|
|
||||||
private var searchResult: List<MatrixUser> = emptyList()
|
private var searchResult: List<MatrixUser> = emptyList()
|
||||||
private var profile: MatrixUser? = null
|
private var profile: MatrixUser? = null
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
|
|
||||||
package io.element.android.features.userlist.test
|
package io.element.android.features.userlist.test
|
||||||
|
|
||||||
import io.element.android.features.userlist.api.MatrixUserDataSource
|
import io.element.android.features.userlist.api.UserListDataSource
|
||||||
import io.element.android.features.userlist.api.UserListPresenter
|
import io.element.android.features.userlist.api.UserListPresenter
|
||||||
import io.element.android.features.userlist.api.UserListPresenterArgs
|
import io.element.android.features.userlist.api.UserListPresenterArgs
|
||||||
|
|
||||||
|
|
@ -24,5 +24,5 @@ class FakeUserListPresenterFactory(
|
||||||
private val fakeUserListPresenter: FakeUserListPresenter = FakeUserListPresenter()
|
private val fakeUserListPresenter: FakeUserListPresenter = FakeUserListPresenter()
|
||||||
) : UserListPresenter.Factory {
|
) : UserListPresenter.Factory {
|
||||||
|
|
||||||
override fun create(args: UserListPresenterArgs, matrixUserDataSource: MatrixUserDataSource): UserListPresenter = fakeUserListPresenter
|
override fun create(args: UserListPresenterArgs, userListDataSource: UserListDataSource): UserListPresenter = fakeUserListPresenter
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue