mirror of
https://github.com/nextcloud/talk-android
synced 2025-03-13 03:01:05 +00:00
Merge pull request #4088 from nextcloud/issue-4080-search-bug-conversation
Fix conversation search functionality and highlighting
This commit is contained in:
commit
fa4bfbc235
@ -373,7 +373,8 @@ class ConversationsListActivity :
|
|||||||
conversationsListViewModel.getRoomsFlow
|
conversationsListViewModel.getRoomsFlow
|
||||||
.onEach { list ->
|
.onEach { list ->
|
||||||
// Update Conversations
|
// Update Conversations
|
||||||
conversationItems.clear()
|
conversationItemsWithHeader.clear()
|
||||||
|
conversationItems.clear() // fixme remove this
|
||||||
for (conversation in list) {
|
for (conversation in list) {
|
||||||
addToConversationItems(conversation)
|
addToConversationItems(conversation)
|
||||||
}
|
}
|
||||||
@ -538,6 +539,12 @@ class ConversationsListActivity :
|
|||||||
if (searchManager != null) {
|
if (searchManager != null) {
|
||||||
searchView!!.setSearchableInfo(searchManager.getSearchableInfo(componentName))
|
searchView!!.setSearchableInfo(searchManager.getSearchableInfo(componentName))
|
||||||
}
|
}
|
||||||
|
initSearchDisposable()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun initSearchDisposable() {
|
||||||
|
if (searchViewDisposable == null || searchViewDisposable?.isDisposed == true) {
|
||||||
searchViewDisposable = observeSearchView(searchView!!)
|
searchViewDisposable = observeSearchView(searchView!!)
|
||||||
.debounce { query: String? ->
|
.debounce { query: String? ->
|
||||||
if (TextUtils.isEmpty(query)) {
|
if (TextUtils.isEmpty(query)) {
|
||||||
@ -618,17 +625,31 @@ class ConversationsListActivity :
|
|||||||
showSearchView(searchView, searchItem)
|
showSearchView(searchView, searchItem)
|
||||||
viewThemeUtils.platform.themeStatusBar(this)
|
viewThemeUtils.platform.themeStatusBar(this)
|
||||||
}
|
}
|
||||||
searchView!!.setOnCloseListener {
|
searchView!!.findViewById<View>(R.id.search_close_btn).setOnClickListener {
|
||||||
if (TextUtils.isEmpty(searchView!!.query.toString())) {
|
if (TextUtils.isEmpty(searchView!!.query.toString())) {
|
||||||
searchView!!.onActionViewCollapsed()
|
searchView!!.onActionViewCollapsed()
|
||||||
viewThemeUtils.platform.resetStatusBar(this)
|
viewThemeUtils.platform.resetStatusBar(this)
|
||||||
} else {
|
} else {
|
||||||
searchView!!.post { searchView!!.setQuery(TAG, true) }
|
resetSearchResults()
|
||||||
|
searchView!!.setQuery("", false)
|
||||||
}
|
}
|
||||||
true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
searchView!!.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
|
||||||
|
override fun onQueryTextSubmit(p0: String?): Boolean {
|
||||||
|
initSearchDisposable()
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onQueryTextChange(p0: String?): Boolean {
|
||||||
|
this@ConversationsListActivity.onQueryTextChange(p0)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
searchItem!!.setOnActionExpandListener(object : MenuItem.OnActionExpandListener {
|
searchItem!!.setOnActionExpandListener(object : MenuItem.OnActionExpandListener {
|
||||||
override fun onMenuItemActionExpand(item: MenuItem): Boolean {
|
override fun onMenuItemActionExpand(item: MenuItem): Boolean {
|
||||||
|
initSearchDisposable()
|
||||||
adapter!!.setHeadersShown(true)
|
adapter!!.setHeadersShown(true)
|
||||||
if (!filterState.containsValue(true)) filterableConversationItems = searchableConversationItems
|
if (!filterState.containsValue(true)) filterableConversationItems = searchableConversationItems
|
||||||
adapter!!.updateDataSet(filterableConversationItems, false)
|
adapter!!.updateDataSet(filterableConversationItems, false)
|
||||||
|
Loading…
Reference in New Issue
Block a user