diff --git a/vector/src/main/java/im/vector/app/features/roomprofile/members/RoomMemberListController.kt b/vector/src/main/java/im/vector/app/features/roomprofile/members/RoomMemberListController.kt index 1a161e407d..76f5f33a27 100644 --- a/vector/src/main/java/im/vector/app/features/roomprofile/members/RoomMemberListController.kt +++ b/vector/src/main/java/im/vector/app/features/roomprofile/members/RoomMemberListController.kt @@ -61,7 +61,7 @@ class RoomMemberListController @Inject constructor( roomMemberSummaryFilter.filter = data.filter val roomMembersByPowerLevel = data.roomMemberSummaries.invoke() ?: return - val threePidInvites = data.threePidInvites() + val filteredThreePidInvites = data.threePidInvites() ?.filter { event -> event.content.toModel() ?.takeIf { @@ -69,7 +69,7 @@ class RoomMemberListController @Inject constructor( } != null } .orEmpty() - var threePidInvitesDone = threePidInvites.isEmpty() + var threePidInvitesDone = filteredThreePidInvites.isEmpty() for ((powerLevelCategory, roomMemberList) in roomMembersByPowerLevel) { val filteredRoomMemberList = roomMemberList.filter { roomMemberSummaryFilter.test(it) } @@ -83,7 +83,7 @@ class RoomMemberListController @Inject constructor( stringProvider.getString(RoomMemberListCategories.INVITE.titleRes) ) - buildThreePidInvites(data) + buildThreePidInvites(filteredThreePidInvites, data.actionsPermissions.canRevokeThreePidInvite) threePidInvitesDone = true } @@ -107,7 +107,7 @@ class RoomMemberListController @Inject constructor( id("divider_threepidinvites") } - buildThreePidInvites(data) + buildThreePidInvites(filteredThreePidInvites, data.actionsPermissions.canRevokeThreePidInvite) threePidInvitesDone = true } } @@ -118,7 +118,7 @@ class RoomMemberListController @Inject constructor( stringProvider.getString(RoomMemberListCategories.INVITE.titleRes) ) - buildThreePidInvites(data) + buildThreePidInvites(filteredThreePidInvites, data.actionsPermissions.canRevokeThreePidInvite) } } @@ -148,11 +148,10 @@ class RoomMemberListController @Inject constructor( } } - private fun buildThreePidInvites(data: RoomMemberListViewState) { + private fun buildThreePidInvites(filteredThreePidInvites: List, canRevokeThreePidInvite: Boolean) { val host = this - data.threePidInvites() - ?.filter { it.content.toModel() != null } - ?.join( + filteredThreePidInvites + .join( each = { idx, event -> event.content.toModel() ?.let { content -> @@ -160,7 +159,7 @@ class RoomMemberListController @Inject constructor( id("3pid_$idx") matrixItem(MatrixItem.UserItem("@", displayName = content.displayName)) avatarRenderer(host.avatarRenderer) - editable(data.actionsPermissions.canRevokeThreePidInvite) + editable(canRevokeThreePidInvite) clickListener { host.callback?.onThreePidInviteClicked(event) }