Ensure groups stories are sent to are retained in the UI.

This commit is contained in:
Alex Hart
2022-03-04 11:20:30 -04:00
parent 3ac63cc59d
commit e2e3617be9
7 changed files with 60 additions and 11 deletions

View File

@@ -90,7 +90,8 @@ class ContactSearchPagedDataSource(
}
private fun getFilteredGroupStories(section: ContactSearchConfiguration.Section.Stories, query: String?): List<ContactSearchData> {
return section.groupStories.filter { contactSearchPagedDataSourceRepository.recipientNameContainsQuery(it.recipient, query) }
return (contactSearchPagedDataSourceRepository.getGroupStories() + section.groupStories)
.filter { contactSearchPagedDataSourceRepository.recipientNameContainsQuery(it.recipient, query) }
}
private fun getSectionData(section: ContactSearchConfiguration.Section, query: String?, startIndex: Int, endIndex: Int): List<ContactSearchData> {

View File

@@ -72,6 +72,13 @@ open class ContactSearchPagedDataSourceRepository(
return SignalDatabase.distributionLists.getMemberCount(recipient.requireDistributionListId())
}
open fun getGroupStories(): Set<ContactSearchData.Story> {
return SignalDatabase.groups.groupsToDisplayAsStories.map {
val recipient = Recipient.resolved(SignalDatabase.recipients.getOrInsertFromGroupId(it))
ContactSearchData.Story(recipient, recipient.participants.size)
}.toSet()
}
open fun recipientNameContainsQuery(recipient: Recipient, query: String?): Boolean {
return query.isNullOrBlank() || recipient.getDisplayName(context).contains(query)
}