From 1ccc3ebb940ecca1cb9a865d00b1867948e022a1 Mon Sep 17 00:00:00 2001 From: rapterjet2004 Date: Tue, 27 May 2025 12:26:54 -0500 Subject: [PATCH] Getting users to show up on query Signed-off-by: rapterjet2004 Signed-off-by: Marcel Hibbe --- .../talk/contacts/ContactsViewModel.kt | 4 +- .../ConversationsListActivity.kt | 41 +++++++++++-------- 2 files changed, 26 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/contacts/ContactsViewModel.kt b/app/src/main/java/com/nextcloud/talk/contacts/ContactsViewModel.kt index 64727b8a7..6877ef842 100644 --- a/app/src/main/java/com/nextcloud/talk/contacts/ContactsViewModel.kt +++ b/app/src/main/java/com/nextcloud/talk/contacts/ContactsViewModel.kt @@ -99,12 +99,12 @@ class ContactsViewModel @Inject constructor( } @Suppress("Detekt.TooGenericExceptionCaught") - fun getContactsFromSearchParams() { + fun getContactsFromSearchParams(query: String = "") { _contactsViewState.value = ContactsUiState.Loading viewModelScope.launch { try { val contacts = repository.getContacts( - searchQuery.value, + if (query != "") query else searchQuery.value, shareTypeList ) val contactsList: MutableList? = contacts.ocs!!.data?.toMutableList() diff --git a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt index dffcae181..1086d9d8e 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt @@ -211,7 +211,7 @@ class ConversationsListActivity : private var adapter: FlexibleAdapter>? = null private var conversationItems: MutableList> = ArrayList() private var conversationItemsWithHeader: MutableList> = ArrayList() - private val searchableConversationItems: MutableList> = ArrayList() + private var searchableConversationItems: MutableList> = ArrayList() private var filterableConversationItems: MutableList> = ArrayList() private var nearFutureEventConversationItems: MutableList> = ArrayList() private var searchItem: MenuItem? = null @@ -235,9 +235,9 @@ class ConversationsListActivity : private var searchViewDisposable: Disposable? = null private var filterState = mutableMapOf( - FilterConversationFragment.MENTION to false, - FilterConversationFragment.UNREAD to false, - FilterConversationFragment.ARCHIVE to false, + MENTION to false, + UNREAD to false, + ARCHIVE to false, FilterConversationFragment.DEFAULT to true ) val searchBehaviorSubject = BehaviorSubject.createDefault(false) @@ -461,7 +461,13 @@ class ConversationsListActivity : userItems.add(contactItem) } - searchableConversationItems.addAll(userItems) + val list = searchableConversationItems.filter { + it !is ContactItem + }.toMutableList() + + list.addAll(userItems) + + searchableConversationItems = list } else -> {} @@ -557,9 +563,6 @@ class ConversationsListActivity : intArrayOf(ApiUtils.API_V4, ApiUtils.API_V3, 1) ) fetchOpenConversations(apiVersion) - - // Get users - fetchUsers() } fun applyFilter() { @@ -637,7 +640,7 @@ class ConversationsListActivity : } } - val archiveFilterOn = filterState[FilterConversationFragment.ARCHIVE] ?: false + val archiveFilterOn = filterState[ARCHIVE] ?: false if (archiveFilterOn && newItems.isEmpty()) { binding.noArchivedConversationLayout.visibility = View.VISIBLE } else { @@ -659,7 +662,7 @@ class ConversationsListActivity : for ((k, v) in filterState) { if (v) { when (k) { - FilterConversationFragment.MENTION -> result = (result && conversation.unreadMention) || + MENTION -> result = (result && conversation.unreadMention) || ( result && ( @@ -669,10 +672,10 @@ class ConversationsListActivity : (conversation.unreadMessages > 0) ) - FilterConversationFragment.UNREAD -> result = result && (conversation.unreadMessages > 0) + UNREAD -> result = result && (conversation.unreadMessages > 0) FilterConversationFragment.DEFAULT -> { - result = if (filterState[FilterConversationFragment.ARCHIVE] == true) { + result = if (filterState[ARCHIVE] == true) { result && conversation.hasArchived } else { result && !conversation.hasArchived @@ -1168,8 +1171,8 @@ class ConversationsListActivity : } } - private fun fetchUsers() { - contactsViewModel.getContactsFromSearchParams() + private fun fetchUsers(query: String = "") { + contactsViewModel.getContactsFromSearchParams(query) } private fun handleHttpExceptions(throwable: Throwable) { @@ -1369,12 +1372,15 @@ class ConversationsListActivity : clearMessageSearchResults() binding.noArchivedConversationLayout.visibility = View.GONE + fetchUsers(filter) + if (hasFilterEnabled()) { adapter?.updateDataSet(conversationItems) adapter?.setFilter(filter) adapter?.filterItems() adapter?.updateDataSet(filterableConversationItems) } else { + adapter?.updateDataSet(searchableConversationItems) adapter?.setFilter(filter) adapter?.filterItems() } @@ -1389,9 +1395,10 @@ class ConversationsListActivity : private fun resetSearchResults() { clearMessageSearchResults() + adapter?.updateDataSet(conversationItems) adapter?.setFilter("") adapter?.filterItems() - val archiveFilterOn = filterState[FilterConversationFragment.ARCHIVE] ?: false + val archiveFilterOn = filterState[ARCHIVE] ?: false if (archiveFilterOn && adapter!!.isEmpty) { binding.noArchivedConversationLayout.visibility = View.VISIBLE } else { @@ -2134,8 +2141,8 @@ class ConversationsListActivity : } fun updateFilterState(mention: Boolean, unread: Boolean) { - filterState[FilterConversationFragment.MENTION] = mention - filterState[FilterConversationFragment.UNREAD] = unread + filterState[MENTION] = mention + filterState[UNREAD] = unread } fun setFilterableItems(items: MutableList>) {