diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/collections/ContactSearchCollection.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/collections/ContactSearchCollection.kt index 9a5bf346c..013e269f6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/collections/ContactSearchCollection.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/collections/ContactSearchCollection.kt @@ -16,7 +16,7 @@ open class ContactSearchCollection( private val activeContactCount: Int ) { - private val contentSize: Int = if (recordPredicate != null) { + protected open val contentSize: Int = if (recordPredicate != null) { records.asSequence().filter(recordPredicate).count() } else { records.getCount() diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/collections/StoriesSearchCollection.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/collections/StoriesSearchCollection.kt index 45977ef85..bff24f8b6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/collections/StoriesSearchCollection.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/collections/StoriesSearchCollection.kt @@ -14,6 +14,7 @@ class StoriesSearchCollection( activeContactCount: Int, private val storyComparator: Comparator ) : ContactSearchCollection(section, records, null, recordMapper, activeContactCount) { + private val aggregateStoryData: List by lazy { if (section !is ContactSearchConfiguration.Section.Stories) { error("Aggregate data creation is only necessary for stories.") @@ -24,6 +25,8 @@ class StoriesSearchCollection( (cursorContacts + extraData).filterIsInstance(ContactSearchData.Story::class.java).sortedWith(storyComparator) } + override val contentSize: Int = records.getCount() + extraData.size + override fun getItemAtCorrectedIndex(correctedIndex: Int): ContactSearchData { return aggregateStoryData[correctedIndex] }