From 3698e1673e2588d6d0f1e5679081357e2b344032 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Mon, 27 Oct 2025 11:20:37 +0100 Subject: [PATCH] Removed delete contact option for native ones, will be re-imported at next restart anyway --- .../ui/main/contacts/fragment/ContactsListFragment.kt | 1 + .../main/contacts/fragment/ContactsListMenuDialogFragment.kt | 2 ++ .../linphone/ui/main/contacts/model/ContactAvatarModel.kt | 2 ++ .../linphone/ui/main/contacts/viewmodel/ContactViewModel.kt | 4 ++++ app/src/main/res/layout/contact_fragment.xml | 4 ++-- app/src/main/res/layout/contacts_list_long_press_menu.xml | 5 ++++- 6 files changed, 15 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListFragment.kt b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListFragment.kt index 02df724a7..0457543fa 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListFragment.kt @@ -282,6 +282,7 @@ class ContactsListFragment : AbstractMainFragment() { model.isFavourite.value == true, model.isStored, isReadOnly = model.isReadOnly, + isNative = model.isNative, { // onDismiss adapter.resetSelection() }, diff --git a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListMenuDialogFragment.kt b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListMenuDialogFragment.kt index 497dbc9ca..8824d6c3d 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListMenuDialogFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactsListMenuDialogFragment.kt @@ -36,6 +36,7 @@ class ContactsListMenuDialogFragment( private val isFavourite: Boolean, private val isStored: Boolean, private val isReadOnly: Boolean, + private val isNative: Boolean, private val onDismiss: (() -> Unit)? = null, private val onFavourite: (() -> Unit)? = null, private val onShare: (() -> Unit)? = null, @@ -72,6 +73,7 @@ class ContactsListMenuDialogFragment( view.isFavourite = isFavourite view.isStored = isStored view.isReadOnly = isReadOnly + view.isNative = isNative view.setFavoriteClickListener { onFavourite?.invoke() diff --git a/app/src/main/java/org/linphone/ui/main/contacts/model/ContactAvatarModel.kt b/app/src/main/java/org/linphone/ui/main/contacts/model/ContactAvatarModel.kt index 3282a25d8..eb8d5b55e 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/model/ContactAvatarModel.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/model/ContactAvatarModel.kt @@ -54,6 +54,8 @@ class ContactAvatarModel val isReadOnly = friend.isReadOnly + val isNative = !friend.nativeUri.isNullOrEmpty() + val isFavourite = MutableLiveData() val lastPresenceInfo = MutableLiveData() diff --git a/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactViewModel.kt b/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactViewModel.kt index ac2ea4254..96f8b9954 100644 --- a/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactViewModel.kt +++ b/app/src/main/java/org/linphone/ui/main/contacts/viewmodel/ContactViewModel.kt @@ -93,6 +93,8 @@ class ContactViewModel val isReadOnly = MutableLiveData() + val isNative = MutableLiveData() + val chatDisabled = MutableLiveData() val videoCallDisabled = MutableLiveData() @@ -236,6 +238,7 @@ class ContactViewModel init { isStored.value = false isReadOnly.value = false + isNative.value = false expandNumbersAndAddresses.value = true trustedDevicesPercentage.value = 0 @@ -312,6 +315,7 @@ class ContactViewModel // if they are in a temporary one (for example if they are from a remote directory such as LDAP or CardDAV) isStored.postValue(!coreContext.contactsManager.isContactTemporary(friend)) isReadOnly.postValue(friend.isReadOnly) + isNative.postValue(!friend.nativeUri.isNullOrEmpty()) contact.value?.destroy() contact.postValue(ContactAvatarModel(friend)) diff --git a/app/src/main/res/layout/contact_fragment.xml b/app/src/main/res/layout/contact_fragment.xml index 145ed224a..4d37caf00 100644 --- a/app/src/main/res/layout/contact_fragment.xml +++ b/app/src/main/res/layout/contact_fragment.xml @@ -561,7 +561,7 @@ android:background="@drawable/action_background_bottom" android:text="@string/contact_details_delete" android:drawableStart="@drawable/trash_simple" - android:visibility="@{viewModel.isStored && !viewModel.isReadOnly ? View.VISIBLE : View.GONE}" + android:visibility="@{viewModel.isStored && !viewModel.isReadOnly && !viewModel.isNative ? View.VISIBLE : View.GONE}" app:layout_constraintStart_toStartOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/action_share"/> @@ -573,7 +573,7 @@ android:layout_marginEnd="16dp" android:background="?attr/color_separator" android:importantForAccessibility="no" - android:visibility="@{viewModel.isStored && !viewModel.isReadOnly ? View.VISIBLE : View.GONE}" + android:visibility="@{viewModel.isStored && !viewModel.isReadOnly && !viewModel.isNative ? View.VISIBLE : View.GONE}" app:layout_constraintEnd_toEndOf="@id/action_edit" app:layout_constraintStart_toStartOf="@id/action_edit" app:layout_constraintTop_toBottomOf="@+id/action_edit"/> diff --git a/app/src/main/res/layout/contacts_list_long_press_menu.xml b/app/src/main/res/layout/contacts_list_long_press_menu.xml index 152a60981..921fbf323 100644 --- a/app/src/main/res/layout/contacts_list_long_press_menu.xml +++ b/app/src/main/res/layout/contacts_list_long_press_menu.xml @@ -25,6 +25,9 @@ +