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 conversationItemsWithHeader: MutableList<AbstractFlexibleItem<*>> = ArrayList()
private var searchableConversationItems: MutableList<AbstractFlexibleItem<*>> = ArrayList() private var searchableConversationItems: MutableList<AbstractFlexibleItem<*>> = ArrayList()
private var filterableConversationItems: MutableList<AbstractFlexibleItem<*>> = ArrayList() private var filterableConversationItems: MutableList<AbstractFlexibleItem<*>> = ArrayList()
private var nearFutureEventConversationItems: MutableList<AbstractFlexibleItem<*>> = ArrayList()
private var searchItem: MenuItem? = null private var searchItem: MenuItem? = null
private var chooseAccountItem: MenuItem? = null private var chooseAccountItem: MenuItem? = null
private var searchView: SearchView? = null private var searchView: SearchView? = null
@ -558,31 +557,20 @@ class ConversationsListActivity :
// Update Conversations // Update Conversations
conversationItems.clear() conversationItems.clear()
conversationItemsWithHeader.clear() conversationItemsWithHeader.clear()
nearFutureEventConversationItems.clear() searchableConversationItems.clear()
for (conversation in list) { for (conversation in list) {
if (!isFutureEvent(conversation) && !conversation.hasArchived) {
addToNearFutureEventConversationItems(conversation)
}
addToConversationItems(conversation) addToConversationItems(conversation)
} }
searchableConversationItems.addAll(conversationItemsWithHeader)
getFilterStates() getFilterStates()
val noFiltersActive = !(
filterState[MENTION] == true ||
filterState[UNREAD] == true ||
filterState[ARCHIVE] == true
)
sortConversations(conversationItems) sortConversations(conversationItems)
sortConversations(conversationItemsWithHeader) sortConversations(conversationItemsWithHeader)
sortConversations(nearFutureEventConversationItems) sortConversations(searchableConversationItems)
if (noFiltersActive && searchBehaviorSubject.value == false) { applyFilter()
adapter?.updateDataSet(nearFutureEventConversationItems, false)
} else {
applyFilter()
}
Handler().postDelayed({ checkToShowUnreadBubble() }, UNREAD_BUBBLE_DELAY.toLong()) Handler().postDelayed({ checkToShowUnreadBubble() }, UNREAD_BUBBLE_DELAY.toLong())
@ -620,17 +608,6 @@ class ConversationsListActivity :
return conversation.objectType == ConversationEnums.ObjectType.EVENT && sixteenHoursAfterTimeStamp 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() { fun getFilterStates() {
val accountId = UserIdUtils.getIdForUser(currentUser) val accountId = UserIdUtils.getIdForUser(currentUser)
filterState[UNREAD] = ( filterState[UNREAD] = (
@ -922,12 +899,7 @@ class ConversationsListActivity :
override fun onMenuItemActionCollapse(item: MenuItem): Boolean { override fun onMenuItemActionCollapse(item: MenuItem): Boolean {
adapter?.setHeadersShown(false) adapter?.setHeadersShown(false)
searchBehaviorSubject.onNext(false) searchBehaviorSubject.onNext(false)
if (!hasFilterEnabled()) filterableConversationItems = conversationItemsWithHeader applyFilter()
if (!hasFilterEnabled()) {
adapter?.updateDataSet(nearFutureEventConversationItems, false)
} else {
filterableConversationItems = conversationItems
}
adapter?.hideAllHeaders() adapter?.hideAllHeaders()
if (searchHelper != null) { if (searchHelper != null) {
// cancel any pending searches // cancel any pending searches
@ -1082,7 +1054,7 @@ class ConversationsListActivity :
this, this,
viewThemeUtils viewThemeUtils
) )
conversationItems.add(conversationItem)
val conversationItemWithHeader = ConversationItem( val conversationItemWithHeader = ConversationItem(
conversation, conversation,
currentUser!!, currentUser!!,
@ -1090,7 +1062,13 @@ class ConversationsListActivity :
callHeaderItems[headerTitle], callHeaderItems[headerTitle],
viewThemeUtils viewThemeUtils
) )
conversationItemsWithHeader.add(conversationItemWithHeader)
if (isFutureEvent(conversation)) {
searchableConversationItems.add(conversationItem)
} else {
conversationItems.add(conversationItem)
conversationItemsWithHeader.add(conversationItemWithHeader)
}
} }
private fun showErrorDialog() { private fun showErrorDialog() {
@ -1157,8 +1135,6 @@ class ConversationsListActivity :
} }
private fun fetchOpenConversations(apiVersion: Int) { private fun fetchOpenConversations(apiVersion: Int) {
searchableConversationItems.clear()
searchableConversationItems.addAll(conversationItemsWithHeader)
if (hasSpreedFeatureCapability( if (hasSpreedFeatureCapability(
currentUser!!.capabilities!!.spreedCapability!!, currentUser!!.capabilities!!.spreedCapability!!,
SpreedFeatures.LISTABLE_ROOMS SpreedFeatures.LISTABLE_ROOMS

View File

@ -7,7 +7,6 @@
package com.nextcloud.talk.ui.dialog package com.nextcloud.talk.ui.dialog
import android.app.Dialog import android.app.Dialog
import android.content.DialogInterface
import android.os.Build import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
@ -100,14 +99,6 @@ class FilterConversationFragment : DialogFragment() {
} }
binding.buttonClose.setOnClickListener { binding.buttonClose.setOnClickListener {
val noFiltersActive = !(
filterState[MENTION] == true ||
filterState[UNREAD] == true ||
filterState[ARCHIVE] == true
)
if (noFiltersActive) {
(requireActivity() as ConversationsListActivity).showOnlyNearFutureEvents()
}
dismiss() dismiss()
} }
} }
@ -139,18 +130,6 @@ class FilterConversationFragment : DialogFragment() {
(requireActivity() as ConversationsListActivity).filterConversation() (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 { companion object {
private const val FILTER_STATE_ARG = "FILTER_STATE_ARG" private const val FILTER_STATE_ARG = "FILTER_STATE_ARG"