From 673cebb0323c5bdd545b52005a789c3b6e16aeae Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Thu, 13 Jun 2024 17:23:57 +0300
Subject: [PATCH] Calculate and observe groups knovks

---
 .../circles/feature/groups/GroupsDataSource.kt     | 14 ++++++++++----
 .../java/org/futo/circles/model/GroupListItem.kt   |  3 ++-
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/app/src/main/java/org/futo/circles/feature/groups/GroupsDataSource.kt b/app/src/main/java/org/futo/circles/feature/groups/GroupsDataSource.kt
index d5aad31f2..8012e5df6 100644
--- a/app/src/main/java/org/futo/circles/feature/groups/GroupsDataSource.kt
+++ b/app/src/main/java/org/futo/circles/feature/groups/GroupsDataSource.kt
@@ -25,13 +25,19 @@ class GroupsDataSource @Inject constructor() {
 
 
     private fun buildList(groups: List<RoomSummary>): List<GroupListItem> {
-        val joinedGroups = groups.filter { it.membership == Membership.JOIN }
+        val joinedGroups = groups
+            .filter { it.membership == Membership.JOIN }
+            .map { it.toJoinedGroupListItem() }
+
         val invitesCount = groups.filter { it.membership == Membership.INVITE }.size
+        var knocksCount = 0
+        joinedGroups.forEach { knocksCount += it.knockRequestsCount }
+
         return mutableListOf<GroupListItem>().apply {
-            if (invitesCount > 0)
-                add(GroupInvitesNotificationListItem(invitesCount))
+            if (invitesCount > 0 || knocksCount > 0)
+                add(GroupInvitesNotificationListItem(invitesCount, knocksCount))
 
-            addAll(joinedGroups.map { it.toJoinedGroupListItem() })
+            addAll(joinedGroups)
         }
     }
 }
\ No newline at end of file
diff --git a/app/src/main/java/org/futo/circles/model/GroupListItem.kt b/app/src/main/java/org/futo/circles/model/GroupListItem.kt
index 7da909898..67f13e4f5 100644
--- a/app/src/main/java/org/futo/circles/model/GroupListItem.kt
+++ b/app/src/main/java/org/futo/circles/model/GroupListItem.kt
@@ -19,5 +19,6 @@ data class JoinedGroupListItem(
 ) : GroupListItem(id)
 
 data class GroupInvitesNotificationListItem(
-    val invitesCount: Int
+    val invitesCount: Int,
+    val knockRequestsCount: Int
 ) : GroupListItem("GroupInvitesNotificationListItem")
\ No newline at end of file
-- 
GitLab