From 759022ec92cb879fdae8020a61737b6256006563 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jorge=20Mart=C3=ADn?= Date: Fri, 22 Mar 2024 10:13:51 +0100 Subject: [PATCH] Update member list after changing member roles Also do it when the user enters the room member list screen. --- .../roomdetails/impl/members/RoomMemberListPresenter.kt | 5 +++++ .../rolesandpermissions/changeroles/ChangeRolesPresenter.kt | 2 ++ 2 files changed, 7 insertions(+) diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/RoomMemberListPresenter.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/RoomMemberListPresenter.kt index d67f80d3c2..c05388bfc7 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/RoomMemberListPresenter.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/RoomMemberListPresenter.kt @@ -84,6 +84,11 @@ class RoomMemberListPresenter @AssistedInject constructor( remember { roomMembersModerationPresenter.dummyState() } } + // Ensure we load the latest data when entering this screen + LaunchedEffect(Unit) { + room.updateMembers() + } + LaunchedEffect(membersState) { if (membersState is MatrixRoomMembersState.Unknown) { return@LaunchedEffect diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/changeroles/ChangeRolesPresenter.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/changeroles/ChangeRolesPresenter.kt index edc11f1f5f..dc1c2ef70e 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/changeroles/ChangeRolesPresenter.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/changeroles/ChangeRolesPresenter.kt @@ -216,6 +216,8 @@ class ChangeRolesPresenter @AssistedInject constructor( } .onSuccess { saveState.value = AsyncAction.Success(Unit) + // Asynchronously reload the room members + launch { room.updateMembers() } } } }