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