diff --git a/core/src/main/java/org/futo/circles/core/feature/select_users/SearchUserDataSource.kt b/core/src/main/java/org/futo/circles/core/feature/select_users/SearchUserDataSource.kt index 737cb992ec549a87ae365f8fe252a4498b487ea0..7b88ab84931e7d5a92d4fb470a867fa22ff5749f 100644 --- a/core/src/main/java/org/futo/circles/core/feature/select_users/SearchUserDataSource.kt +++ b/core/src/main/java/org/futo/circles/core/feature/select_users/SearchUserDataSource.kt @@ -10,8 +10,8 @@ import org.futo.circles.core.extensions.createResult import org.futo.circles.core.extensions.getKnownUsersFlow import org.futo.circles.core.extensions.getServerDomain import org.futo.circles.core.provider.MatrixSessionProvider +import org.futo.circles.core.utils.getAllCirclesRooms import org.matrix.android.sdk.api.session.getRoom -import org.matrix.android.sdk.api.session.room.roomSummaryQueryParams import org.matrix.android.sdk.api.session.user.model.User import javax.inject.Inject @@ -20,8 +20,8 @@ class SearchUserDataSource @Inject constructor() { private val session = MatrixSessionProvider.currentSession suspend fun loadAllRoomMembersIfNeeded() { - session?.roomService()?.getRoomSummaries(roomSummaryQueryParams())?.forEach { - session.getRoom(it.roomId)?.membershipService()?.loadRoomMembersIfNeeded() + getAllCirclesRooms().forEach { + session?.getRoom(it.roomId)?.membershipService()?.loadRoomMembersIfNeeded() } } diff --git a/core/src/main/java/org/futo/circles/core/utils/MatrixUtils.kt b/core/src/main/java/org/futo/circles/core/utils/MatrixUtils.kt index ed01a8875f1e6a7612b6af000542d9edce730595..d6e393c12cd405487d6e56f8083f6276b308b0a6 100644 --- a/core/src/main/java/org/futo/circles/core/utils/MatrixUtils.kt +++ b/core/src/main/java/org/futo/circles/core/utils/MatrixUtils.kt @@ -57,23 +57,29 @@ fun getSpacesLiveData(membershipFilter: List<Membership> = Membership.activeMemb fun getTimelinesLiveData(membershipFilter: List<Membership> = Membership.activeMemberships()) = getRoomsLiveDataWithType(TIMELINE_TYPE, membershipFilter) -fun getAllJoinedCirclesRoomsAndSpaces(session: Session = MatrixSessionProvider.getSessionOrThrow()) = - session.roomService().getRoomSummaries(roomSummaryQueryParams { +private fun getAllRoomsAndSpacesFilter(membershipFilter: List<Membership>) = + roomSummaryQueryParams { excludeType = listOf(roomType, null) - memberships = listOf(Membership.JOIN) - }) + memberships = membershipFilter + } + +fun getAllJoinedCirclesRoomsAndSpaces(session: Session = MatrixSessionProvider.getSessionOrThrow()) = + session.roomService().getRoomSummaries(getAllRoomsAndSpacesFilter(listOf(Membership.JOIN))) fun getAllJoinedCirclesRoomsAndSpacesLiveData(session: Session = MatrixSessionProvider.getSessionOrThrow()) = - session.roomService().getRoomSummariesLive(roomSummaryQueryParams { - excludeType = listOf(roomType, null) - memberships = listOf(Membership.JOIN) - }) + session.roomService().getRoomSummariesLive(getAllRoomsAndSpacesFilter(listOf(Membership.JOIN))) + +private fun getAllRoomsFiler(membershipFilter: List<Membership>) = roomSummaryQueryParams { + excludeType = listOf(roomType, spaceType, null) + memberships = membershipFilter +} fun getAllCirclesRoomsLiveData(membershipFilter: List<Membership> = Membership.activeMemberships()) = MatrixSessionProvider.getSessionOrThrow().roomService() - .getRoomSummariesLive(roomSummaryQueryParams { - excludeType = listOf(roomType, spaceType, null) - memberships = membershipFilter - }) + .getRoomSummariesLive(getAllRoomsFiler(membershipFilter)) + +fun getAllCirclesRooms(membershipFilter: List<Membership> = Membership.activeMemberships()) = + MatrixSessionProvider.getSessionOrThrow().roomService() + .getRoomSummaries(getAllRoomsFiler(membershipFilter))