mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-23 12:45:01 +01:00
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 <dev@mhibbe.de>
This commit is contained in:
parent
b35bfc1ee7
commit
d7d53f5a2b
@ -213,7 +213,6 @@ class ConversationsListActivity :
|
||||
private var conversationItemsWithHeader: MutableList<AbstractFlexibleItem<*>> = ArrayList()
|
||||
private val 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
|
||||
@ -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
|
||||
|
@ -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"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user