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) } }