From d7d53f5a2bb6756cc8c67806273324b0bd03d45d Mon Sep 17 00:00:00 2001 From: Marcel Hibbe Date: Tue, 27 May 2025 18:08:49 +0200 Subject: [PATCH] change some logic from event conversations PRs .. while making sure logic from near/far future events remains and archived conversation handling is fixed (must not show up in main conversations list). Signed-off-by: Marcel Hibbe --- .../ConversationsListActivity.kt | 50 +++++-------------- .../ui/dialog/FilterConversationFragment.kt | 21 -------- 2 files changed, 13 insertions(+), 58 deletions(-) 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..3cc5b6f3b 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt @@ -213,7 +213,6 @@ class ConversationsListActivity : private var conversationItemsWithHeader: MutableList> = ArrayList() private val searchableConversationItems: MutableList> = ArrayList() private var filterableConversationItems: MutableList> = ArrayList() - private var nearFutureEventConversationItems: MutableList> = ArrayList() private var searchItem: MenuItem? = null private var chooseAccountItem: MenuItem? = null private var searchView: SearchView? = null @@ -523,31 +522,20 @@ class ConversationsListActivity : // Update Conversations conversationItems.clear() conversationItemsWithHeader.clear() - nearFutureEventConversationItems.clear() + searchableConversationItems.clear() for (conversation in list) { - if (!isFutureEvent(conversation) && !conversation.hasArchived) { - addToNearFutureEventConversationItems(conversation) - } addToConversationItems(conversation) } + searchableConversationItems.addAll(conversationItemsWithHeader) getFilterStates() - val noFiltersActive = !( - filterState[MENTION] == true || - filterState[UNREAD] == true || - filterState[ARCHIVE] == true - ) sortConversations(conversationItems) sortConversations(conversationItemsWithHeader) - sortConversations(nearFutureEventConversationItems) + sortConversations(searchableConversationItems) - if (noFiltersActive && searchBehaviorSubject.value == false) { - adapter?.updateDataSet(nearFutureEventConversationItems, false) - } else { - applyFilter() - } + applyFilter() Handler().postDelayed({ checkToShowUnreadBubble() }, UNREAD_BUBBLE_DELAY.toLong()) @@ -588,17 +576,6 @@ class ConversationsListActivity : return conversation.objectType == ConversationEnums.ObjectType.EVENT && sixteenHoursAfterTimeStamp } - fun showOnlyNearFutureEvents() { - sortConversations(nearFutureEventConversationItems) - adapter?.updateDataSet(nearFutureEventConversationItems, false) - adapter?.smoothScrollToPosition(0) - } - - private fun addToNearFutureEventConversationItems(conversation: ConversationModel) { - val conversationItem = ConversationItem(conversation, currentUser!!, this, null, viewThemeUtils) - nearFutureEventConversationItems.add(conversationItem) - } - fun getFilterStates() { val accountId = UserIdUtils.getIdForUser(currentUser) filterState[UNREAD] = ( @@ -890,12 +867,7 @@ class ConversationsListActivity : override fun onMenuItemActionCollapse(item: MenuItem): Boolean { adapter?.setHeadersShown(false) searchBehaviorSubject.onNext(false) - if (!hasFilterEnabled()) filterableConversationItems = conversationItemsWithHeader - if (!hasFilterEnabled()) { - adapter?.updateDataSet(nearFutureEventConversationItems, false) - } else { - filterableConversationItems = conversationItems - } + applyFilter() adapter?.hideAllHeaders() if (searchHelper != null) { // cancel any pending searches @@ -1050,7 +1022,7 @@ class ConversationsListActivity : this, viewThemeUtils ) - conversationItems.add(conversationItem) + val conversationItemWithHeader = ConversationItem( conversation, currentUser!!, @@ -1058,7 +1030,13 @@ class ConversationsListActivity : callHeaderItems[headerTitle], viewThemeUtils ) - conversationItemsWithHeader.add(conversationItemWithHeader) + + if (isFutureEvent(conversation)) { + searchableConversationItems.add(conversationItem) + } else { + conversationItems.add(conversationItem) + conversationItemsWithHeader.add(conversationItemWithHeader) + } } private fun showErrorDialog() { @@ -1125,8 +1103,6 @@ class ConversationsListActivity : } private fun fetchOpenConversations(apiVersion: Int) { - searchableConversationItems.clear() - searchableConversationItems.addAll(conversationItemsWithHeader) if (hasSpreedFeatureCapability( currentUser!!.capabilities!!.spreedCapability!!, SpreedFeatures.LISTABLE_ROOMS diff --git a/app/src/main/java/com/nextcloud/talk/ui/dialog/FilterConversationFragment.kt b/app/src/main/java/com/nextcloud/talk/ui/dialog/FilterConversationFragment.kt index c95a7464a..d78f3d2e8 100644 --- a/app/src/main/java/com/nextcloud/talk/ui/dialog/FilterConversationFragment.kt +++ b/app/src/main/java/com/nextcloud/talk/ui/dialog/FilterConversationFragment.kt @@ -7,7 +7,6 @@ package com.nextcloud.talk.ui.dialog import android.app.Dialog -import android.content.DialogInterface import android.os.Build import android.os.Bundle import android.view.LayoutInflater @@ -100,14 +99,6 @@ class FilterConversationFragment : DialogFragment() { } binding.buttonClose.setOnClickListener { - val noFiltersActive = !( - filterState[MENTION] == true || - filterState[UNREAD] == true || - filterState[ARCHIVE] == true - ) - if (noFiltersActive) { - (requireActivity() as ConversationsListActivity).showOnlyNearFutureEvents() - } dismiss() } } @@ -139,18 +130,6 @@ class FilterConversationFragment : DialogFragment() { (requireActivity() as ConversationsListActivity).filterConversation() } - override fun onDismiss(dialog: DialogInterface) { - super.onDismiss(dialog) - val noFiltersActive = !( - filterState[MENTION] == true || - filterState[UNREAD] == true || - filterState[ARCHIVE] == true - ) - if (noFiltersActive) { - (requireActivity() as ConversationsListActivity).showOnlyNearFutureEvents() - } - } - companion object { private const val FILTER_STATE_ARG = "FILTER_STATE_ARG"