mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-09 05:50:15 +01:00
Merge pull request #4877 from nextcloud/issue-4762-search-bug
Fixing bugs with Conversation search
This commit is contained in:
commit
39b7931534
@ -41,9 +41,9 @@ import androidx.appcompat.app.AlertDialog
|
||||
import androidx.appcompat.widget.SearchView
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.ui.platform.ViewCompositionStrategy
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.core.graphics.drawable.toDrawable
|
||||
import androidx.core.net.toUri
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.core.view.MenuItemCompat
|
||||
import androidx.core.view.isVisible
|
||||
import androidx.fragment.app.DialogFragment
|
||||
@ -1349,6 +1349,7 @@ class ConversationsListActivity :
|
||||
private fun performFilterAndSearch(filter: String?) {
|
||||
if (filter!!.length >= SEARCH_MIN_CHARS) {
|
||||
clearMessageSearchResults()
|
||||
binding.noArchivedConversationLayout.visibility = View.GONE
|
||||
|
||||
if (hasFilterEnabled()) {
|
||||
adapter?.updateDataSet(conversationItems)
|
||||
@ -1372,6 +1373,12 @@ class ConversationsListActivity :
|
||||
clearMessageSearchResults()
|
||||
adapter?.setFilter("")
|
||||
adapter?.filterItems()
|
||||
val archiveFilterOn = filterState[FilterConversationFragment.ARCHIVE] ?: false
|
||||
if (archiveFilterOn && adapter!!.isEmpty) {
|
||||
binding.noArchivedConversationLayout.visibility = View.VISIBLE
|
||||
} else {
|
||||
binding.noArchivedConversationLayout.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
private fun clearMessageSearchResults() {
|
||||
@ -1380,6 +1387,7 @@ class ConversationsListActivity :
|
||||
adapter?.removeSection(firstHeader)
|
||||
} else {
|
||||
adapter?.removeItemsOfType(MessageResultItem.VIEW_TYPE)
|
||||
adapter?.removeItemsOfType(MessagesTextHeaderItem.VIEW_TYPE)
|
||||
}
|
||||
adapter?.removeItemsOfType(LoadMoreResultsItem.VIEW_TYPE)
|
||||
}
|
||||
@ -2077,29 +2085,25 @@ class ConversationsListActivity :
|
||||
val entries = results.messages
|
||||
if (entries.isNotEmpty()) {
|
||||
val adapterItems: MutableList<AbstractFlexibleItem<*>> = ArrayList(entries.size + 1)
|
||||
|
||||
for (i in entries.indices) {
|
||||
val showHeader = i == 0
|
||||
adapterItems.add(
|
||||
MessageResultItem(
|
||||
context,
|
||||
currentUser!!,
|
||||
entries[i],
|
||||
showHeader,
|
||||
viewThemeUtils = viewThemeUtils
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
if (results.hasMore) {
|
||||
adapterItems.add(LoadMoreResultsItem)
|
||||
}
|
||||
|
||||
adapter?.addItems(Int.MAX_VALUE, adapterItems)
|
||||
val pos = adapter?.currentItems?.indexOfFirst {
|
||||
it is MessageResultItem
|
||||
}
|
||||
val item = (adapter?.currentItems?.get(pos!!) as MessageResultItem).apply { showHeader = true }
|
||||
adapter?.addItem(pos!!, item)
|
||||
adapter?.notifyItemInserted(pos!!)
|
||||
adapter?.removeItem(pos!! - 1)
|
||||
adapter?.notifyItemRemoved(pos!! - 1)
|
||||
binding.recyclerView.scrollToPosition(0)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user