diff --git a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt
index efcfb2b6b..64918e7f3 100644
--- a/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt
+++ b/app/src/main/java/org/linphone/ui/main/contacts/fragment/ContactFragment.kt
@@ -45,6 +45,7 @@ import org.linphone.core.Factory
import org.linphone.core.tools.Log
import org.linphone.databinding.ContactFragmentBinding
import org.linphone.ui.GenericActivity
+import org.linphone.ui.main.contacts.model.ContactTrustDialogModel
import org.linphone.ui.main.contacts.model.NumberOrAddressPickerDialogModel
import org.linphone.ui.main.contacts.model.TrustCallDialogModel
import org.linphone.ui.main.contacts.viewmodel.ContactViewModel
@@ -297,7 +298,10 @@ class ContactFragment : SlidingPaneChildFragment() {
}
private fun showTrustProcessDialog() {
- val dialog = DialogUtils.getContactTrustProcessExplanationDialog(requireActivity())
+ val initials = viewModel.contact.value?.initials?.value ?: "JD"
+ val picture = viewModel.contact.value?.picturePath?.value.orEmpty()
+ val model = ContactTrustDialogModel(initials, picture)
+ val dialog = DialogUtils.getContactTrustProcessExplanationDialog(requireActivity(), model)
dialog.show()
}
diff --git a/app/src/main/java/org/linphone/ui/main/contacts/model/ContactTrustDialogModel.kt b/app/src/main/java/org/linphone/ui/main/contacts/model/ContactTrustDialogModel.kt
new file mode 100644
index 000000000..4894a2cb2
--- /dev/null
+++ b/app/src/main/java/org/linphone/ui/main/contacts/model/ContactTrustDialogModel.kt
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2010-2024 Belledonne Communications SARL.
+ *
+ * This file is part of linphone-android
+ * (see https://www.linphone.org).
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package org.linphone.ui.main.contacts.model
+
+import androidx.annotation.UiThread
+import org.linphone.contacts.AbstractAvatarModel
+import org.linphone.core.SecurityLevel
+
+@UiThread
+class ContactTrustDialogModel(initials: String, picturePath: String) {
+ val avatarModel = FakeAvatarModel(initials, picturePath, false)
+
+ val trustedAvatarModel = FakeAvatarModel(initials, picturePath, true)
+
+ @UiThread
+ class FakeAvatarModel(contactInitials: String, contactPicturePath: String, trusted: Boolean) : AbstractAvatarModel() {
+ init {
+ initials.value = contactInitials
+ picturePath.value = contactPicturePath
+ showTrust.value = trusted
+ trust.value = SecurityLevel.EndToEndEncryptedAndVerified
+ }
+ }
+}
diff --git a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt
index a1a347501..f86e19644 100644
--- a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt
+++ b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt
@@ -425,7 +425,7 @@ private fun loadContactPictureWithCoil(
}
val image = model.picturePath.value.orEmpty()
- if (image != null) {
+ if (image.isNotEmpty()) {
imageView.load(image) {
transformations(CircleCropTransformation())
listener(
diff --git a/app/src/main/java/org/linphone/utils/DialogUtils.kt b/app/src/main/java/org/linphone/utils/DialogUtils.kt
index 2ba5b061e..8c3db92d6 100644
--- a/app/src/main/java/org/linphone/utils/DialogUtils.kt
+++ b/app/src/main/java/org/linphone/utils/DialogUtils.kt
@@ -58,6 +58,7 @@ import org.linphone.ui.assistant.model.AcceptConditionsAndPolicyDialogModel
import org.linphone.ui.assistant.model.ConfirmPhoneNumberDialogModel
import org.linphone.ui.call.model.ZrtpAlertDialogModel
import org.linphone.ui.call.model.ZrtpSasConfirmationDialogModel
+import org.linphone.ui.main.contacts.model.ContactTrustDialogModel
import org.linphone.ui.main.contacts.model.NumberOrAddressPickerDialogModel
import org.linphone.ui.main.contacts.model.TrustCallDialogModel
import org.linphone.ui.main.fragment.AuthRequestedDialogModel
@@ -170,13 +171,18 @@ class DialogUtils {
}
@UiThread
- fun getContactTrustProcessExplanationDialog(context: Context): Dialog {
+ fun getContactTrustProcessExplanationDialog(
+ context: Context,
+ viewModel: ContactTrustDialogModel
+ ): Dialog {
val binding: DialogContactTrustProcessBinding = DataBindingUtil.inflate(
LayoutInflater.from(context),
R.layout.dialog_contact_trust_process,
null,
false
)
+ binding.viewModel = viewModel
+
val dialog = getDialog(context, binding)
binding.setDismissClickListener {
diff --git a/app/src/main/res/drawable/arrow_right.xml b/app/src/main/res/drawable/arrow_right.xml
new file mode 100644
index 000000000..8ca53f6db
--- /dev/null
+++ b/app/src/main/res/drawable/arrow_right.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/layout/dialog_contact_trust_process.xml b/app/src/main/res/layout/dialog_contact_trust_process.xml
index 723a8f92b..dfc782618 100644
--- a/app/src/main/res/layout/dialog_contact_trust_process.xml
+++ b/app/src/main/res/layout/dialog_contact_trust_process.xml
@@ -1,13 +1,16 @@
-
+
+
+
+
+
+
+
+
Augmenter le niveau de confiance
Vous êtes sur le point de passer un appel vers l\'appareil $2%s\ de $1%s.\Voulez-vous démarrer l\'appel ?
- What does it mean?
- Blah blah blah
+ Niveau de confiance
+ Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission.\nQuand tous seront vérifiés, vous atteindrez le niveau de confiance maximal.
Supprimer %s ?
Ce contact sera définitivement supprimé.
Choisissez un numéro ou adresse SIP
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 643cf0de1..bdd1caa7b 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -402,8 +402,8 @@
Increase trust level
You\'re about to make a call to $1%s\'s device $2%s.\nDo you want to make the call?
- What does it mean?
- Blah blah blah
+ Trust level
+ Check all of your contact devices to make sure your communications will be secured an unaltered.\nWhen all will be verified, you\'ll reach maximum trust level.
Delete %s?
This contact will be definitively removed.
Choose a number or a SIP address