From 09263382e10cbd242a1cb99c4ceee53363df9590 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 25 Feb 2022 17:23:18 +0100 Subject: [PATCH] Using new MagicSearch API --- .../call/fragments/ControlsFragment.kt | 1 - .../fragments/MasterContactsFragment.kt | 4 ++-- .../viewmodels/ContactsListViewModel.kt | 19 ++++++++++++++----- .../viewmodels/LdapSettingsViewModel.kt | 15 +++++++++++++++ .../res/layout/settings_ldap_fragment.xml | 8 ++++++++ app/src/main/res/values-fr/strings.xml | 3 +++ app/src/main/res/values/strings.xml | 2 ++ 7 files changed, 44 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/call/fragments/ControlsFragment.kt b/app/src/main/java/org/linphone/activities/call/fragments/ControlsFragment.kt index b2a209d2f..09983aa04 100644 --- a/app/src/main/java/org/linphone/activities/call/fragments/ControlsFragment.kt +++ b/app/src/main/java/org/linphone/activities/call/fragments/ControlsFragment.kt @@ -24,7 +24,6 @@ import android.animation.ValueAnimator import android.annotation.TargetApi import android.app.Dialog import android.content.Intent -import android.content.pm.PackageManager import android.content.pm.PackageManager.PERMISSION_GRANTED import android.os.Bundle import android.os.SystemClock diff --git a/app/src/main/java/org/linphone/activities/main/contact/fragments/MasterContactsFragment.kt b/app/src/main/java/org/linphone/activities/main/contact/fragments/MasterContactsFragment.kt index d4955614a..85b67c0e4 100644 --- a/app/src/main/java/org/linphone/activities/main/contact/fragments/MasterContactsFragment.kt +++ b/app/src/main/java/org/linphone/activities/main/contact/fragments/MasterContactsFragment.kt @@ -257,13 +257,13 @@ class MasterContactsFragment : MasterFragment filterValue.length) { + if (clearCache || ( + previousFilter.isNotEmpty() && ( + previousFilter.length > filterValue.length || + (previousFilter.length == filterValue.length && previousFilter != filterValue) + ) + ) + ) { coreContext.contactsManager.magicSearch.resetSearchCache() } previousFilter = filterValue - val domain = if (sipContactsSelected.value == true) coreContext.core.defaultAccount?.params?.domain ?: "" else "" fetchInProgress.value = true - coreContext.contactsManager.magicSearch.getContactListFromFilterAsync(filterValue, domain) + + val domain = if (sipContactsSelected.value == true) coreContext.core.defaultAccount?.params?.domain ?: "" else "" + val filter = MagicSearchSource.Friends.toInt() or MagicSearchSource.LdapServers.toInt() + coreContext.contactsManager.magicSearch.getContactsAsync(filterValue, domain, filter) } private fun processMagicSearchResults(results: Array) { diff --git a/app/src/main/java/org/linphone/activities/main/settings/viewmodels/LdapSettingsViewModel.kt b/app/src/main/java/org/linphone/activities/main/settings/viewmodels/LdapSettingsViewModel.kt index 4e2dec957..97f03d9d2 100644 --- a/app/src/main/java/org/linphone/activities/main/settings/viewmodels/LdapSettingsViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/settings/viewmodels/LdapSettingsViewModel.kt @@ -178,6 +178,20 @@ class LdapSettingsViewModel(private val ldap: Ldap, val index: String) : Generic } val ldapSearchTimeout = MutableLiveData() + val ldapRequestDelayListener = object : SettingListenerStub() { + override fun onTextValueChanged(newValue: String) { + try { + val intValue = newValue.toInt() + val params = ldap.params.clone() + params.delay = intValue + ldap.params = params + } catch (nfe: NumberFormatException) { + Log.e("[LDAP Settings] Failed to set request delay ($newValue): $nfe") + } + } + } + val ldapRequestDelay = MutableLiveData() + val ldapNameAttributeListener = object : SettingListenerStub() { override fun onTextValueChanged(newValue: String) { val params = ldap.params.clone() @@ -226,6 +240,7 @@ class LdapSettingsViewModel(private val ldap: Ldap, val index: String) : Generic ldapSearchFilter.value = params.filter ldapSearchMaxResults.value = params.maxResults ldapSearchTimeout.value = params.timeout + ldapRequestDelay.value = params.delay ldapNameAttribute.value = params.nameAttribute ldapSipAttribute.value = params.sipAttribute ldapSipDomain.value = params.sipDomain diff --git a/app/src/main/res/layout/settings_ldap_fragment.xml b/app/src/main/res/layout/settings_ldap_fragment.xml index 237c1cd8e..7da8013d5 100644 --- a/app/src/main/res/layout/settings_ldap_fragment.xml +++ b/app/src/main/res/layout/settings_ldap_fragment.xml @@ -169,6 +169,14 @@ linphone:defaultValue="@{viewModel.ldapSearchTimeout.toString()}" linphone:inputType="@{InputType.TYPE_CLASS_NUMBER}"/> + + Contribuer aux traductions Certaines fonctionnalités avancées comme les messages de groupe ou les messages éphémères nécessitent un compte &appName;.\n\nElles seront masquées dans l\'application si vous configurez un compte SIP tiers.\n\nSi vous souhaitez les activer pour un projet professionnel, contactez-nous. J\'ai compris + Nouvelle configuration LDAP LDAP Activer Supprimer @@ -646,6 +647,8 @@ Résultats maximum Durée max En secondes + Délai entre 2 requêtes + En millisecondes Analyse Attributs de nom Attributs SIP diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 829e23931..7ceaa553e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -509,6 +509,8 @@ Max results Timeout In seconds + Delay between two requests + In milliseconds Parsing Name attributes SIP attributes