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 d5aad31f209cc6a7a9816a48789e406d965cca6c..8012e5df6e7f8054c075b78bdcc2ec4353b475fb 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 7da909898c729d504b0578cdae5b1f95ef180e8a..67f13e4f537609a49e7b4b3ff7bed3edebe24cf8 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