From b919f51ecbecc4f2e46f02d854160cc16a6dd929 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 22 Jan 2024 17:24:26 +0100 Subject: [PATCH] Improved conversations list computing when filter is empty --- .../viewmodel/ConversationsListViewModel.kt | 38 ++++++++++++------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationsListViewModel.kt b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationsListViewModel.kt index 6543561ae..bc296f9a4 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationsListViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/viewmodel/ConversationsListViewModel.kt @@ -152,23 +152,33 @@ class ConversationsListViewModel @UiThread constructor() : AbstractTopBarViewMod } } - val participants = chatRoom.participants - val found = participants.find { - // Search in address but also in contact name if exists - val model = coreContext.contactsManager.getContactAvatarModelForAddress(it.address) - model.contactName?.contains(filter, ignoreCase = true) == true || it.address.asStringUriOnly().contains( - filter, - ignoreCase = true - ) - } - if ( - found != null || - chatRoom.peerAddress.asStringUriOnly().contains(filter, ignoreCase = true) || - chatRoom.subject.orEmpty().contains(filter, ignoreCase = true) - ) { + if (filter.isEmpty()) { val model = ConversationModel(chatRoom) list.add(model) count += 1 + } else { + val participants = chatRoom.participants + val found = participants.find { + // Search in address but also in contact name if exists + val model = + coreContext.contactsManager.getContactAvatarModelForAddress(it.address) + model.contactName?.contains( + filter, + ignoreCase = true + ) == true || it.address.asStringUriOnly().contains( + filter, + ignoreCase = true + ) + } + if ( + found != null || + chatRoom.peerAddress.asStringUriOnly().contains(filter, ignoreCase = true) || + chatRoom.subject.orEmpty().contains(filter, ignoreCase = true) + ) { + val model = ConversationModel(chatRoom) + list.add(model) + count += 1 + } } if (count == 20) {