From b7b68a408d72663495ac4893f82eb8705f879290 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Fri, 18 Nov 2022 16:58:40 +0200 Subject: [PATCH] Refresh known users for select users view model --- .../feature/room/select_users/SelectUsersDataSource.kt | 7 +++++++ .../feature/room/select_users/SelectUsersViewModel.kt | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/app/src/main/java/org/futo/circles/feature/room/select_users/SelectUsersDataSource.kt b/app/src/main/java/org/futo/circles/feature/room/select_users/SelectUsersDataSource.kt index 35fe65709..d804c1283 100644 --- a/app/src/main/java/org/futo/circles/feature/room/select_users/SelectUsersDataSource.kt +++ b/app/src/main/java/org/futo/circles/feature/room/select_users/SelectUsersDataSource.kt @@ -11,6 +11,7 @@ import org.futo.circles.model.NoResultsItem import org.futo.circles.model.UserListItem import org.futo.circles.provider.MatrixSessionProvider 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 class SelectUsersDataSource(roomId: String?) { @@ -25,6 +26,12 @@ class SelectUsersDataSource(roomId: String?) { val selectedUsersFlow = MutableStateFlow<List<UserListItem>>(emptyList()) + suspend fun loadAllRoomMembersIfNeeded(){ + session?.roomService()?.getRoomSummaries(roomSummaryQueryParams())?.forEach { + session.getRoom(it.roomId)?.membershipService()?.loadRoomMembersIfNeeded() + } + } + suspend fun search(query: String) = combine( searchKnownUsers(query), diff --git a/app/src/main/java/org/futo/circles/feature/room/select_users/SelectUsersViewModel.kt b/app/src/main/java/org/futo/circles/feature/room/select_users/SelectUsersViewModel.kt index 69c5e8e52..87833f7b4 100644 --- a/app/src/main/java/org/futo/circles/feature/room/select_users/SelectUsersViewModel.kt +++ b/app/src/main/java/org/futo/circles/feature/room/select_users/SelectUsersViewModel.kt @@ -16,6 +16,10 @@ class SelectUsersViewModel( val searchUsersLiveData = MutableLiveData<List<InviteMemberListItem>>() val selectedUsersLiveData = dataSource.selectedUsersFlow.asLiveData() + init { + launchBg { dataSource.loadAllRoomMembersIfNeeded() } + } + fun initSearchListener(queryFlow: StateFlow<String>) { launchUi { queryFlow -- GitLab