mirror of
https://github.com/nextcloud/talk-android
synced 2025-06-19 11:39:42 +01:00
get filter states before getting conversations for adapter
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
parent
84e3615fc5
commit
0c147e730a
@ -114,6 +114,9 @@ import com.nextcloud.talk.ui.dialog.ChooseAccountShareToDialogFragment
|
||||
import com.nextcloud.talk.ui.dialog.ContextChatCompose
|
||||
import com.nextcloud.talk.ui.dialog.ConversationsListBottomDialog
|
||||
import com.nextcloud.talk.ui.dialog.FilterConversationFragment
|
||||
import com.nextcloud.talk.ui.dialog.FilterConversationFragment.Companion.ARCHIVE
|
||||
import com.nextcloud.talk.ui.dialog.FilterConversationFragment.Companion.MENTION
|
||||
import com.nextcloud.talk.ui.dialog.FilterConversationFragment.Companion.UNREAD
|
||||
import com.nextcloud.talk.users.UserManager
|
||||
import com.nextcloud.talk.utils.ApiUtils
|
||||
import com.nextcloud.talk.utils.BrandingUtils
|
||||
@ -529,20 +532,23 @@ class ConversationsListActivity :
|
||||
addToConversationItems(conversation)
|
||||
}
|
||||
|
||||
getFilterStates()
|
||||
val noFiltersActive = !(
|
||||
filterState[MENTION] == true ||
|
||||
filterState[UNREAD] == true ||
|
||||
filterState[ARCHIVE] == true
|
||||
)
|
||||
|
||||
sortConversations(conversationItems)
|
||||
sortConversations(conversationItemsWithHeader)
|
||||
sortConversations(nearFutureEventConversationItems)
|
||||
|
||||
if (!hasFilterEnabled() && searchBehaviorSubject.value == false) {
|
||||
if (noFiltersActive && searchBehaviorSubject.value == false) {
|
||||
adapter?.updateDataSet(nearFutureEventConversationItems, false)
|
||||
} else {
|
||||
// Filter Conversations
|
||||
if (!hasFilterEnabled()) {
|
||||
filterableConversationItems = conversationItems
|
||||
}
|
||||
filterConversation()
|
||||
adapter?.updateDataSet(filterableConversationItems, false)
|
||||
applyFilter()
|
||||
}
|
||||
|
||||
Handler().postDelayed({ checkToShowUnreadBubble() }, UNREAD_BUBBLE_DELAY.toLong())
|
||||
|
||||
// Fetch Open Conversations
|
||||
@ -556,6 +562,14 @@ class ConversationsListActivity :
|
||||
fetchUsers()
|
||||
}
|
||||
|
||||
fun applyFilter() {
|
||||
if (!hasFilterEnabled()) {
|
||||
filterableConversationItems = conversationItems
|
||||
}
|
||||
filterConversation()
|
||||
adapter?.updateDataSet(filterableConversationItems, false)
|
||||
}
|
||||
|
||||
private fun hasFilterEnabled(): Boolean {
|
||||
for ((k, v) in filterState) {
|
||||
if (k != FilterConversationFragment.DEFAULT && v) return true
|
||||
@ -585,32 +599,35 @@ class ConversationsListActivity :
|
||||
nearFutureEventConversationItems.add(conversationItem)
|
||||
}
|
||||
|
||||
fun filterConversation() {
|
||||
fun getFilterStates() {
|
||||
val accountId = UserIdUtils.getIdForUser(currentUser)
|
||||
filterState[FilterConversationFragment.UNREAD] = (
|
||||
filterState[UNREAD] = (
|
||||
arbitraryStorageManager.getStorageSetting(
|
||||
accountId,
|
||||
FilterConversationFragment.UNREAD,
|
||||
UNREAD,
|
||||
""
|
||||
).blockingGet()?.value ?: ""
|
||||
) == "true"
|
||||
|
||||
filterState[FilterConversationFragment.MENTION] = (
|
||||
filterState[MENTION] = (
|
||||
arbitraryStorageManager.getStorageSetting(
|
||||
accountId,
|
||||
FilterConversationFragment.MENTION,
|
||||
MENTION,
|
||||
""
|
||||
).blockingGet()?.value ?: ""
|
||||
) == "true"
|
||||
|
||||
filterState[FilterConversationFragment.ARCHIVE] = (
|
||||
filterState[ARCHIVE] = (
|
||||
arbitraryStorageManager.getStorageSetting(
|
||||
accountId,
|
||||
FilterConversationFragment.ARCHIVE,
|
||||
ARCHIVE,
|
||||
""
|
||||
).blockingGet()?.value ?: ""
|
||||
) == "true"
|
||||
}
|
||||
|
||||
fun filterConversation() {
|
||||
getFilterStates()
|
||||
val newItems: MutableList<AbstractFlexibleItem<*>> = ArrayList()
|
||||
val items = conversationItems
|
||||
for (i in items) {
|
||||
|
Loading…
Reference in New Issue
Block a user