This commit is contained in:
Marcel Hibbe 2025-06-18 07:54:22 +00:00 committed by GitHub
commit 36a23728cd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 13 additions and 58 deletions

View File

@ -215,7 +215,6 @@ class ConversationsListActivity :
private var conversationItemsWithHeader: MutableList<AbstractFlexibleItem<*>> = ArrayList()
private var searchableConversationItems: MutableList<AbstractFlexibleItem<*>> = ArrayList()
private var filterableConversationItems: MutableList<AbstractFlexibleItem<*>> = ArrayList()
private var nearFutureEventConversationItems: MutableList<AbstractFlexibleItem<*>> = ArrayList()
private var searchItem: MenuItem? = null
private var chooseAccountItem: MenuItem? = null
private var searchView: SearchView? = null
@ -558,31 +557,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())
@ -620,17 +608,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] = (
@ -922,12 +899,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
@ -1082,7 +1054,7 @@ class ConversationsListActivity :
this,
viewThemeUtils
)
conversationItems.add(conversationItem)
val conversationItemWithHeader = ConversationItem(
conversation,
currentUser!!,
@ -1090,7 +1062,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() {
@ -1157,8 +1135,6 @@ class ConversationsListActivity :
}
private fun fetchOpenConversations(apiVersion: Int) {
searchableConversationItems.clear()
searchableConversationItems.addAll(conversationItemsWithHeader)
if (hasSpreedFeatureCapability(
currentUser!!.capabilities!!.spreedCapability!!,
SpreedFeatures.LISTABLE_ROOMS

View File

@ -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"