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.ContextChatCompose
|
||||||
import com.nextcloud.talk.ui.dialog.ConversationsListBottomDialog
|
import com.nextcloud.talk.ui.dialog.ConversationsListBottomDialog
|
||||||
import com.nextcloud.talk.ui.dialog.FilterConversationFragment
|
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.users.UserManager
|
||||||
import com.nextcloud.talk.utils.ApiUtils
|
import com.nextcloud.talk.utils.ApiUtils
|
||||||
import com.nextcloud.talk.utils.BrandingUtils
|
import com.nextcloud.talk.utils.BrandingUtils
|
||||||
@ -529,20 +532,23 @@ class ConversationsListActivity :
|
|||||||
addToConversationItems(conversation)
|
addToConversationItems(conversation)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
getFilterStates()
|
||||||
|
val noFiltersActive = !(
|
||||||
|
filterState[MENTION] == true ||
|
||||||
|
filterState[UNREAD] == true ||
|
||||||
|
filterState[ARCHIVE] == true
|
||||||
|
)
|
||||||
|
|
||||||
sortConversations(conversationItems)
|
sortConversations(conversationItems)
|
||||||
sortConversations(conversationItemsWithHeader)
|
sortConversations(conversationItemsWithHeader)
|
||||||
sortConversations(nearFutureEventConversationItems)
|
sortConversations(nearFutureEventConversationItems)
|
||||||
|
|
||||||
if (!hasFilterEnabled() && searchBehaviorSubject.value == false) {
|
if (noFiltersActive && searchBehaviorSubject.value == false) {
|
||||||
adapter?.updateDataSet(nearFutureEventConversationItems, false)
|
adapter?.updateDataSet(nearFutureEventConversationItems, false)
|
||||||
} else {
|
} else {
|
||||||
// Filter Conversations
|
applyFilter()
|
||||||
if (!hasFilterEnabled()) {
|
|
||||||
filterableConversationItems = conversationItems
|
|
||||||
}
|
|
||||||
filterConversation()
|
|
||||||
adapter?.updateDataSet(filterableConversationItems, false)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Handler().postDelayed({ checkToShowUnreadBubble() }, UNREAD_BUBBLE_DELAY.toLong())
|
Handler().postDelayed({ checkToShowUnreadBubble() }, UNREAD_BUBBLE_DELAY.toLong())
|
||||||
|
|
||||||
// Fetch Open Conversations
|
// Fetch Open Conversations
|
||||||
@ -556,6 +562,14 @@ class ConversationsListActivity :
|
|||||||
fetchUsers()
|
fetchUsers()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun applyFilter() {
|
||||||
|
if (!hasFilterEnabled()) {
|
||||||
|
filterableConversationItems = conversationItems
|
||||||
|
}
|
||||||
|
filterConversation()
|
||||||
|
adapter?.updateDataSet(filterableConversationItems, false)
|
||||||
|
}
|
||||||
|
|
||||||
private fun hasFilterEnabled(): Boolean {
|
private fun hasFilterEnabled(): Boolean {
|
||||||
for ((k, v) in filterState) {
|
for ((k, v) in filterState) {
|
||||||
if (k != FilterConversationFragment.DEFAULT && v) return true
|
if (k != FilterConversationFragment.DEFAULT && v) return true
|
||||||
@ -585,32 +599,35 @@ class ConversationsListActivity :
|
|||||||
nearFutureEventConversationItems.add(conversationItem)
|
nearFutureEventConversationItems.add(conversationItem)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun filterConversation() {
|
fun getFilterStates() {
|
||||||
val accountId = UserIdUtils.getIdForUser(currentUser)
|
val accountId = UserIdUtils.getIdForUser(currentUser)
|
||||||
filterState[FilterConversationFragment.UNREAD] = (
|
filterState[UNREAD] = (
|
||||||
arbitraryStorageManager.getStorageSetting(
|
arbitraryStorageManager.getStorageSetting(
|
||||||
accountId,
|
accountId,
|
||||||
FilterConversationFragment.UNREAD,
|
UNREAD,
|
||||||
""
|
""
|
||||||
).blockingGet()?.value ?: ""
|
).blockingGet()?.value ?: ""
|
||||||
) == "true"
|
) == "true"
|
||||||
|
|
||||||
filterState[FilterConversationFragment.MENTION] = (
|
filterState[MENTION] = (
|
||||||
arbitraryStorageManager.getStorageSetting(
|
arbitraryStorageManager.getStorageSetting(
|
||||||
accountId,
|
accountId,
|
||||||
FilterConversationFragment.MENTION,
|
MENTION,
|
||||||
""
|
""
|
||||||
).blockingGet()?.value ?: ""
|
).blockingGet()?.value ?: ""
|
||||||
) == "true"
|
) == "true"
|
||||||
|
|
||||||
filterState[FilterConversationFragment.ARCHIVE] = (
|
filterState[ARCHIVE] = (
|
||||||
arbitraryStorageManager.getStorageSetting(
|
arbitraryStorageManager.getStorageSetting(
|
||||||
accountId,
|
accountId,
|
||||||
FilterConversationFragment.ARCHIVE,
|
ARCHIVE,
|
||||||
""
|
""
|
||||||
).blockingGet()?.value ?: ""
|
).blockingGet()?.value ?: ""
|
||||||
) == "true"
|
) == "true"
|
||||||
|
}
|
||||||
|
|
||||||
|
fun filterConversation() {
|
||||||
|
getFilterStates()
|
||||||
val newItems: MutableList<AbstractFlexibleItem<*>> = ArrayList()
|
val newItems: MutableList<AbstractFlexibleItem<*>> = ArrayList()
|
||||||
val items = conversationItems
|
val items = conversationItems
|
||||||
for (i in items) {
|
for (i in items) {
|
||||||
|
Loading…
Reference in New Issue
Block a user