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