From 3567eeda749bf104462eb61e9f2357e3afeda16c 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 --- .../talk/contacts/ContactsViewModel.kt | 4 +- .../ConversationsListActivity.kt | 40 ++++++++++++------- 2 files changed, 27 insertions(+), 17 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 7d495226b..49e110f68 100644 --- a/app/src/main/java/com/nextcloud/talk/contacts/ContactsViewModel.kt +++ b/app/src/main/java/com/nextcloud/talk/contacts/ContactsViewModel.kt @@ -76,12 +76,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..609a736eb 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 -> {} @@ -559,7 +565,7 @@ class ConversationsListActivity : fetchOpenConversations(apiVersion) // Get users - fetchUsers() + // fetchUsers() } fun applyFilter() { @@ -637,7 +643,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 +665,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 +675,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 +1174,8 @@ class ConversationsListActivity : } } - private fun fetchUsers() { - contactsViewModel.getContactsFromSearchParams() + private fun fetchUsers(query: String = "") { + contactsViewModel.getContactsFromSearchParams(query) } private fun handleHttpExceptions(throwable: Throwable) { @@ -1369,12 +1375,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 +1398,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 +2144,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>) {