From cc103ebc9cbe73932c48675f11b3c55494d12150 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Sun, 26 Jan 2020 11:49:30 +0100 Subject: [PATCH] Fix headers & footers for search Signed-off-by: Mario Danic --- .../features/contactsflow/ContactsViewFooterSource.kt | 1 + .../features/contactsflow/ContactsViewHeaderSource.kt | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/newarch/features/contactsflow/ContactsViewFooterSource.kt b/app/src/main/java/com/nextcloud/talk/newarch/features/contactsflow/ContactsViewFooterSource.kt index 55e5feb6c..2af60de9f 100644 --- a/app/src/main/java/com/nextcloud/talk/newarch/features/contactsflow/ContactsViewFooterSource.kt +++ b/app/src/main/java/com/nextcloud/talk/newarch/features/contactsflow/ContactsViewFooterSource.kt @@ -43,6 +43,7 @@ class ContactsViewFooterSource(private val context: Context, private val element override fun getElementType(data: Data) = elementType override fun computeFooters(page: Page, list: List): List> { + lastAnchor = null val results = arrayListOf>() lastAnchor = if (list.isNotEmpty()) { val participant = list.takeLast(1)[0] diff --git a/app/src/main/java/com/nextcloud/talk/newarch/features/contactsflow/ContactsViewHeaderSource.kt b/app/src/main/java/com/nextcloud/talk/newarch/features/contactsflow/ContactsViewHeaderSource.kt index e7e667b2e..8fa39974c 100644 --- a/app/src/main/java/com/nextcloud/talk/newarch/features/contactsflow/ContactsViewHeaderSource.kt +++ b/app/src/main/java/com/nextcloud/talk/newarch/features/contactsflow/ContactsViewHeaderSource.kt @@ -32,12 +32,13 @@ import com.otaliastudios.elements.extensions.HeaderSource class ContactsHeaderSource(private val context: Context, private val elementType: Int) : HeaderSource() { // Store the last header that was added, even if it belongs to a previous page. - private var lastHeader: String = "" + private var headersAlreadyAdded = mutableListOf() override fun dependsOn(source: Source<*>) = source is ContactsViewSource override fun computeHeaders(page: Page, list: List): List> { val results = arrayListOf>() + headersAlreadyAdded = mutableListOf() for (participant in list) { val header = when (participant.source) { "users" -> { @@ -57,9 +58,9 @@ class ContactsHeaderSource(private val context: Context, private val elementType } } - if (header != lastHeader) { + if (!headersAlreadyAdded.contains(header)) { results.add(Data(participant, header)) - lastHeader = header + headersAlreadyAdded.add(header) } }