From a18e192d28ae470f61aea40ee166018cd25471bb Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Wed, 9 Apr 2025 13:34:14 +0200 Subject: [PATCH] fix search Signed-off-by: sowjanyakch --- .../ConversationsListActivity.kt | 26 ++++++++++++++++--- .../OfflineFirstConversationsRepository.kt | 12 +-------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt index 3e5f87ce5..96faf1877 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationlist/ConversationsListActivity.kt @@ -519,9 +519,15 @@ class ConversationsListActivity : // Update Conversations conversationItems.clear() conversationItemsWithHeader.clear() + searchableConversationItems.clear() + for (conversation in list) { - addToConversationItems(conversation) + if (!FutureEvent(conversation)) { + addToConversationItems(conversation) + } + addToSearchableConversationItems(conversation) } + sortConversations(conversationItems) sortConversations(conversationItemsWithHeader) @@ -550,6 +556,21 @@ class ConversationsListActivity : 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() { val accountId = UserIdUtils.getIdForUser(currentUser) filterState[FilterConversationFragment.UNREAD] = ( @@ -1069,8 +1090,6 @@ class ConversationsListActivity : } private fun fetchOpenConversations(apiVersion: Int) { - searchableConversationItems.clear() - searchableConversationItems.addAll(conversationItemsWithHeader) if (hasSpreedFeatureCapability( currentUser!!.capabilities!!.spreedCapability!!, SpreedFeatures.LISTABLE_ROOMS @@ -2114,5 +2133,6 @@ class ConversationsListActivity : const val NOTIFICATION_WARNING_DATE_NOT_SET = 0L const val OFFSET_HEIGHT_DIVIDER: Int = 3 const val ROOM_TYPE_ONE_ONE = "1" + private const val AGE_THRESHOLD_FOR_EVENT_CONVERSATIONS: Long = 86400 } } diff --git a/app/src/main/java/com/nextcloud/talk/conversationlist/data/network/OfflineFirstConversationsRepository.kt b/app/src/main/java/com/nextcloud/talk/conversationlist/data/network/OfflineFirstConversationsRepository.kt index 6be702186..c4b941962 100644 --- a/app/src/main/java/com/nextcloud/talk/conversationlist/data/network/OfflineFirstConversationsRepository.kt +++ b/app/src/main/java/com/nextcloud/talk/conversationlist/data/network/OfflineFirstConversationsRepository.kt @@ -18,7 +18,6 @@ import com.nextcloud.talk.data.database.model.ConversationEntity import com.nextcloud.talk.data.network.NetworkMonitor import com.nextcloud.talk.data.user.model.User 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.database.user.CurrentUserProviderNew import io.reactivex.Observer @@ -122,15 +121,7 @@ class OfflineFirstConversationsRepository @Inject constructor( .observeOn(AndroidSchedulers.mainThread()) .blockingSingle() - val currentTime = System.currentTimeMillis() / 1000 - - val conversationListWithoutEvents = conversationsList.filterNot { conversation -> - - conversation.objectType == ConversationEnums.ObjectType.EVENT && - conversation.objectId.split("#")[0].toLong() - currentTime > - AGE_THRESHOLD_FOR_EVENT_CONVERSATIONS - } - conversationsFromSync = conversationListWithoutEvents.map { + conversationsFromSync = conversationsList.map { it.asEntity(user.id!!) } @@ -165,6 +156,5 @@ class OfflineFirstConversationsRepository @Inject constructor( companion object { val TAG = OfflineFirstConversationsRepository::class.simpleName - private const val AGE_THRESHOLD_FOR_EVENT_CONVERSATIONS: Long = 86400 } }