From 899129d4bcaeca981660a098fbd967fde77fba80 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 10 Jul 2025 16:22:10 +0200 Subject: [PATCH] Fixed CardDAV settings when it's read only --- .../settings/viewmodel/CardDavViewModel.kt | 5 +++++ .../res/layout/settings_contacts_carddav.xml | 21 +++++++++++++++++++ app/src/main/res/values-fr/strings.xml | 1 + app/src/main/res/values/strings.xml | 1 + 4 files changed, 28 insertions(+) diff --git a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/CardDavViewModel.kt b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/CardDavViewModel.kt index 46613f873..a388b4bad 100644 --- a/app/src/main/java/org/linphone/ui/main/settings/viewmodel/CardDavViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/settings/viewmodel/CardDavViewModel.kt @@ -58,6 +58,8 @@ class CardDavViewModel val storeNewContactsInIt = MutableLiveData() + val isReadOnly = MutableLiveData() + val syncSuccessfulEvent: MutableLiveData> by lazy { MutableLiveData>() } @@ -88,12 +90,14 @@ class CardDavViewModel val previous = corePreferences.friendListInWhichStoreNewlyCreatedFriends if (friendList.isReadOnly) { Log.w("$TAG User asked to add newly created contacts in this friend list but it is read only, keep currently default friend list [$previous]") + storeNewContactsInIt.postValue(false) } else { Log.i( "$TAG Updating default friend list to store newly created contacts from [$previous] to [$name]" ) corePreferences.friendListInWhichStoreNewlyCreatedFriends = name } + isReadOnly.postValue(friendList.isReadOnly) } Log.i("$TAG Notifying contacts manager that contacts have changed") @@ -142,6 +146,7 @@ class CardDavViewModel isEdit.postValue(true) friendList = found friendList.addListener(friendListListener) + isReadOnly.postValue(friendList.isReadOnly) displayName.postValue(name) storeNewContactsInIt.postValue( diff --git a/app/src/main/res/layout/settings_contacts_carddav.xml b/app/src/main/res/layout/settings_contacts_carddav.xml index 42aebb291..30fee5bb0 100644 --- a/app/src/main/res/layout/settings_contacts_carddav.xml +++ b/app/src/main/res/layout/settings_contacts_carddav.xml @@ -261,6 +261,7 @@ android:text="@string/settings_contacts_carddav_use_as_default_title" android:maxLines="2" android:ellipsize="end" + android:visibility="@{viewModel.isReadOnly ? View.GONE : View.VISIBLE}" app:layout_constraintTop_toTopOf="@id/save_new_contacts_in_this_list_switch" app:layout_constraintBottom_toBottomOf="@id/save_new_contacts_in_this_list_switch" app:layout_constraintStart_toStartOf="parent" @@ -274,9 +275,29 @@ android:layout_marginTop="20dp" android:layout_marginEnd="16dp" android:checked="@={viewModel.storeNewContactsInIt}" + android:visibility="@{viewModel.isReadOnly ? View.GONE : View.VISIBLE}" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/realm" /> + + diff --git a/app/src/main/res/values-fr/strings.xml b/app/src/main/res/values-fr/strings.xml index 1f91dc5f9..e447a5a49 100644 --- a/app/src/main/res/values-fr/strings.xml +++ b/app/src/main/res/values-fr/strings.xml @@ -231,6 +231,7 @@ Erreur de synchronization ! Compte CardDAV supprimé Veuillez remplir au moins le nom d\'affichage et l\'URL du serveur + Ce carnet d\'adresses est en lecture seule Activé URL du serveur (ne peut être vide) Bind DN diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 78eb17f3c..6522050c4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -272,6 +272,7 @@ Synchronization error! CardDAV account removed Please fill at least the display name and the server URL + This address-book is read-only Enabled Server URL (can\'t be empty) Bind DN