From fbc19c7053f23aaa03eef12fbabe161592a0e0a2 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 25 Mar 2025 16:45:56 +0100 Subject: [PATCH] Fixes regarding contacts list filter when switching account --- .../viewmodel/ContactsListViewModel.kt | 24 ++++++++++++------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactsListViewModel.kt b/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactsListViewModel.kt index 71862217a..4bdcf109e 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactsListViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactsListViewModel.kt @@ -38,7 +38,6 @@ import org.linphone.core.MagicSearchListenerStub import org.linphone.core.SearchResult import org.linphone.core.tools.Log import org.linphone.ui.main.contacts.model.ContactAvatarModel -import org.linphone.ui.main.model.isEndToEndEncryptionMandatory import org.linphone.ui.main.viewmodel.AbstractMainViewModel import org.linphone.utils.Event import org.linphone.utils.FileUtils @@ -143,9 +142,11 @@ class ContactsListViewModel fun applyCurrentDefaultAccountFilter() { coreContext.postOnCoreThread { updateDomainFilter() - } - applyFilter(currentFilter) + coreContext.postOnMainThread { + applyFilter(currentFilter) + } + } } @UiThread @@ -181,17 +182,22 @@ class ContactsListViewModel @WorkerThread private fun updateDomainFilter() { val defaultAccount = coreContext.core.defaultAccount - val defaultDomain = defaultAccount?.params?.domain == corePreferences.defaultDomain - isDefaultAccountLinphone.postValue(defaultDomain) + val defaultDomain = corePreferences.defaultDomain + val isAccountOnDefaultDomain = defaultAccount?.params?.domain == defaultDomain + isDefaultAccountLinphone.postValue(isAccountOnDefaultDomain) - Log.i("$TAG Currently selected filter is [${corePreferences.contactsFilter}]") domainFilter = corePreferences.contactsFilter - if (isEndToEndEncryptionMandatory() && (domainFilter.isEmpty() || domainFilter == "*")) { - domainFilter = corePreferences.defaultDomain + Log.i("$TAG Currently selected filter is [$domainFilter]") + if (!isAccountOnDefaultDomain && domainFilter == defaultDomain) { + domainFilter = "*" corePreferences.contactsFilter = domainFilter Log.i( - "$TAG Filter updated to [${corePreferences.contactsFilter}] to match mandatory IM encryption" + "$TAG New default account isn't on default domain, changing filter to all SIP contacts instead" ) + } else if (isAccountOnDefaultDomain && domainFilter != "") { + domainFilter = defaultDomain + corePreferences.contactsFilter = domainFilter + Log.i("$TAG New default account is on default domain, using that as filter instead") } }