From 2a82db2b0267d8a0b3fadceeeacdef2a1608cfb8 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Mon, 26 Sep 2022 12:03:57 -0300 Subject: [PATCH] Update bad calculation of content size for stories collection. --- .../contacts/paged/collections/ContactSearchCollection.kt | 2 +- .../contacts/paged/collections/StoriesSearchCollection.kt | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) 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] }