Added enabled toggle for LDAP plugins allowing to disable it without deleting it + reduced max displayed contacts

This commit is contained in:
Sylvain Berfini 2025-07-04 10:56:29 +02:00
parent d69a797b25
commit 561737631a
5 changed files with 42 additions and 3 deletions

View file

@ -348,7 +348,7 @@ class CorePreferences
@get:WorkerThread
val magicSearchResultsLimit: Int
get() = config.getInt("ui", "max_number_of_magic_search_results", 1000)
get() = config.getInt("ui", "max_number_of_magic_search_results", 300)
@get:WorkerThread
val singleSignOnClientId: String

View file

@ -35,6 +35,8 @@ class LdapViewModel : GenericViewModel() {
val isEdit = MutableLiveData<Boolean>()
val isEnabled = MutableLiveData<Boolean>()
val serverUrl = MutableLiveData<String>()
val bindDn = MutableLiveData<String>()
@ -71,6 +73,7 @@ class LdapViewModel : GenericViewModel() {
init {
isEdit.value = false
isEnabled.value = true
showPassword.value = false
useTls.value = true
@ -93,6 +96,7 @@ class LdapViewModel : GenericViewModel() {
isEdit.postValue(true)
ldapToEdit = found
val ldapParams = ldapToEdit.params
isEnabled.postValue(ldapParams.enabled)
serverUrl.postValue(ldapParams.server)
bindDn.postValue(ldapParams.bindDn.orEmpty())
@ -122,6 +126,11 @@ class LdapViewModel : GenericViewModel() {
}
}
@UiThread
fun toggleEnabled() {
isEnabled.value = isEnabled.value == false
}
@UiThread
fun toggleShowPassword() {
showPassword.value = showPassword.value == false
@ -145,7 +154,7 @@ class LdapViewModel : GenericViewModel() {
val ldapParams = core.createLdapParams()
ldapParams.enabled = true
ldapParams.enabled = isEnabled.value == true
ldapParams.server = server
ldapParams.bindDn = bindDn.value.orEmpty().trim()
ldapParams.password = password.value.orEmpty().trim()

View file

@ -73,6 +73,34 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_style"
android:onClick="@{() -> viewModel.toggleEnabled()}"
android:id="@+id/enabled_title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="10dp"
android:text="@string/settings_contacts_ldap_enabled_title"
android:maxLines="2"
android:ellipsize="end"
app:layout_constraintTop_toTopOf="@id/enabled_switch"
app:layout_constraintBottom_toBottomOf="@id/enabled_switch"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@id/enabled_switch"/>
<com.google.android.material.materialswitch.MaterialSwitch
style="@style/material_switch_style"
android:id="@+id/enabled_switch"
android:onClick="@{() -> viewModel.toggleEnabled()}"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="16dp"
android:checked="@{viewModel.isEnabled}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.appcompat.widget.AppCompatTextView
style="@style/settings_title_style"
android:id="@+id/server_url_title"
@ -84,7 +112,7 @@
android:text="@string/settings_contacts_ldap_server_url_title"
android:maxLines="2"
android:ellipsize="end"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintTop_toBottomOf="@id/enabled_switch"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>

View file

@ -233,6 +233,7 @@
<string name="settings_contacts_carddav_sync_error_toast">Erreur de synchronization !</string>
<string name="settings_contacts_carddav_deleted_toast">Compte CardDAV supprimé</string>
<string name="settings_contacts_carddav_mandatory_field_not_filled_toast">Veuillez remplir au moins le nom d\'affichage et l\'URL du serveur</string>
<string name="settings_contacts_ldap_enabled_title">Activé</string>
<string name="settings_contacts_ldap_server_url_title">URL du serveur (ne peut être vide)</string>
<string name="settings_contacts_ldap_bind_dn_title">Bind DN</string>
<string name="settings_contacts_ldap_password_title">Mot de passe</string>

View file

@ -274,6 +274,7 @@
<string name="settings_contacts_carddav_sync_error_toast">Synchronization error!</string>
<string name="settings_contacts_carddav_deleted_toast">CardDAV account removed</string>
<string name="settings_contacts_carddav_mandatory_field_not_filled_toast">Please fill at least the display name and the server URL</string>
<string name="settings_contacts_ldap_enabled_title">Enabled</string>
<string name="settings_contacts_ldap_server_url_title">Server URL (can\'t be empty)</string>
<string name="settings_contacts_ldap_bind_dn_title">Bind DN</string>
<string name="settings_contacts_ldap_password_title">Password</string>