From 8afb738fd6ee28f6f65af7cb59cf621eb8b1c7c6 Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Fri, 29 Dec 2023 17:05:22 +0200 Subject: [PATCH] Fix following count in circles list --- .../java/org/futo/circles/mapping/RoomSummaryMapping.kt | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/futo/circles/mapping/RoomSummaryMapping.kt b/app/src/main/java/org/futo/circles/mapping/RoomSummaryMapping.kt index f818d5f4c..8ac47c5bb 100644 --- a/app/src/main/java/org/futo/circles/mapping/RoomSummaryMapping.kt +++ b/app/src/main/java/org/futo/circles/mapping/RoomSummaryMapping.kt @@ -1,7 +1,9 @@ package org.futo.circles.mapping +import org.futo.circles.core.extensions.getRoomOwner import org.futo.circles.core.mapping.toRoomInfo import org.futo.circles.core.provider.MatrixSessionProvider +import org.futo.circles.core.utils.getJoinedRoomById import org.futo.circles.core.utils.getTimelineRoomFor import org.futo.circles.model.JoinedCircleListItem import org.futo.circles.model.JoinedGroupListItem @@ -27,12 +29,17 @@ fun RoomSummary.toJoinedCircleListItem(isShared: Boolean = false) = JoinedCircle id = roomId, info = toRoomInfo(), isShared = isShared, - followingCount = spaceChildren?.size?.takeIf { it != 0 }?.minus(1) ?: 0, + followingCount = getFollowingCount(), followedByCount = getFollowersCount(), unreadCount = getCircleUnreadMessagesCount(), knockRequestsCount = getKnocksCount(getTimelineRoomFor(roomId)?.roomId ?: "") ) +private fun RoomSummary.getFollowingCount() = spaceChildren?.filter { + getJoinedRoomById(it.childRoomId) != null && + getRoomOwner(it.childRoomId)?.userId != MatrixSessionProvider.currentSession?.myUserId +}?.size ?: 0 + private fun RoomSummary.getFollowersCount(): Int = getTimelineRoomFor(roomId)?.roomSummary()?.otherMemberIds?.size ?: 0 -- GitLab