mirror of
https://github.com/nextcloud/talk-android
synced 2025-07-09 22:04:24 +01:00
fix search
Signed-off-by: sowjanyakch <sowjanya.kch@gmail.com>
This commit is contained in:
parent
fd47146729
commit
a18e192d28
@ -519,9 +519,15 @@ class ConversationsListActivity :
|
|||||||
// Update Conversations
|
// Update Conversations
|
||||||
conversationItems.clear()
|
conversationItems.clear()
|
||||||
conversationItemsWithHeader.clear()
|
conversationItemsWithHeader.clear()
|
||||||
|
searchableConversationItems.clear()
|
||||||
|
|
||||||
for (conversation in list) {
|
for (conversation in list) {
|
||||||
addToConversationItems(conversation)
|
if (!FutureEvent(conversation)) {
|
||||||
|
addToConversationItems(conversation)
|
||||||
|
}
|
||||||
|
addToSearchableConversationItems(conversation)
|
||||||
}
|
}
|
||||||
|
|
||||||
sortConversations(conversationItems)
|
sortConversations(conversationItems)
|
||||||
sortConversations(conversationItemsWithHeader)
|
sortConversations(conversationItemsWithHeader)
|
||||||
|
|
||||||
@ -550,6 +556,21 @@ class ConversationsListActivity :
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun FutureEvent(conversation: ConversationModel): Boolean {
|
||||||
|
return conversation.objectType == ConversationEnums.ObjectType.EVENT &&
|
||||||
|
(conversation.objectId.split("#")[0].toLong() - (System.currentTimeMillis() / 1000)) > AGE_THRESHOLD_FOR_EVENT_CONVERSATIONS
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun addToSearchableConversationItems(conversation: ConversationModel) {
|
||||||
|
val headerTitle = resources!!.getString(R.string.conversations)
|
||||||
|
val headerItem = callHeaderItems.getOrPut(headerTitle) {
|
||||||
|
GenericTextHeaderItem(headerTitle, viewThemeUtils)
|
||||||
|
}
|
||||||
|
|
||||||
|
val conversationItem = ConversationItem(conversation, currentUser!!, this, headerItem, viewThemeUtils)
|
||||||
|
searchableConversationItems.add(conversationItem)
|
||||||
|
}
|
||||||
|
|
||||||
fun filterConversation() {
|
fun filterConversation() {
|
||||||
val accountId = UserIdUtils.getIdForUser(currentUser)
|
val accountId = UserIdUtils.getIdForUser(currentUser)
|
||||||
filterState[FilterConversationFragment.UNREAD] = (
|
filterState[FilterConversationFragment.UNREAD] = (
|
||||||
@ -1069,8 +1090,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
|
||||||
@ -2114,5 +2133,6 @@ class ConversationsListActivity :
|
|||||||
const val NOTIFICATION_WARNING_DATE_NOT_SET = 0L
|
const val NOTIFICATION_WARNING_DATE_NOT_SET = 0L
|
||||||
const val OFFSET_HEIGHT_DIVIDER: Int = 3
|
const val OFFSET_HEIGHT_DIVIDER: Int = 3
|
||||||
const val ROOM_TYPE_ONE_ONE = "1"
|
const val ROOM_TYPE_ONE_ONE = "1"
|
||||||
|
private const val AGE_THRESHOLD_FOR_EVENT_CONVERSATIONS: Long = 86400
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,6 @@ import com.nextcloud.talk.data.database.model.ConversationEntity
|
|||||||
import com.nextcloud.talk.data.network.NetworkMonitor
|
import com.nextcloud.talk.data.network.NetworkMonitor
|
||||||
import com.nextcloud.talk.data.user.model.User
|
import com.nextcloud.talk.data.user.model.User
|
||||||
import com.nextcloud.talk.models.domain.ConversationModel
|
import com.nextcloud.talk.models.domain.ConversationModel
|
||||||
import com.nextcloud.talk.models.json.conversations.ConversationEnums
|
|
||||||
import com.nextcloud.talk.utils.CapabilitiesUtil.isUserStatusAvailable
|
import com.nextcloud.talk.utils.CapabilitiesUtil.isUserStatusAvailable
|
||||||
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
|
import com.nextcloud.talk.utils.database.user.CurrentUserProviderNew
|
||||||
import io.reactivex.Observer
|
import io.reactivex.Observer
|
||||||
@ -122,15 +121,7 @@ class OfflineFirstConversationsRepository @Inject constructor(
|
|||||||
.observeOn(AndroidSchedulers.mainThread())
|
.observeOn(AndroidSchedulers.mainThread())
|
||||||
.blockingSingle()
|
.blockingSingle()
|
||||||
|
|
||||||
val currentTime = System.currentTimeMillis() / 1000
|
conversationsFromSync = conversationsList.map {
|
||||||
|
|
||||||
val conversationListWithoutEvents = conversationsList.filterNot { conversation ->
|
|
||||||
|
|
||||||
conversation.objectType == ConversationEnums.ObjectType.EVENT &&
|
|
||||||
conversation.objectId.split("#")[0].toLong() - currentTime >
|
|
||||||
AGE_THRESHOLD_FOR_EVENT_CONVERSATIONS
|
|
||||||
}
|
|
||||||
conversationsFromSync = conversationListWithoutEvents.map {
|
|
||||||
it.asEntity(user.id!!)
|
it.asEntity(user.id!!)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -165,6 +156,5 @@ class OfflineFirstConversationsRepository @Inject constructor(
|
|||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
val TAG = OfflineFirstConversationsRepository::class.simpleName
|
val TAG = OfflineFirstConversationsRepository::class.simpleName
|
||||||
private const val AGE_THRESHOLD_FOR_EVENT_CONVERSATIONS: Long = 86400
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user