diff --git a/app/src/main/java/com/infomaniak/mail/data/models/Bimi.kt b/app/src/main/java/com/infomaniak/mail/data/models/Bimi.kt index 07484287e7b..8b318e0571c 100644 --- a/app/src/main/java/com/infomaniak/mail/data/models/Bimi.kt +++ b/app/src/main/java/com/infomaniak/mail/data/models/Bimi.kt @@ -28,10 +28,13 @@ import kotlinx.serialization.Serializable @Parcelize @Serializable class Bimi() : EmbeddedRealmObject, Parcelable { + + //region Remote data @SerialName("svg_content") var svgContentUrl: String? = null @SerialName("is_certified") var isCertified: Boolean = false + //endregion constructor(svgContentUrl: String, isCertified: Boolean) : this() { this.svgContentUrl = svgContentUrl diff --git a/app/src/main/java/com/infomaniak/mail/ui/main/AvatarNameEmailView.kt b/app/src/main/java/com/infomaniak/mail/ui/main/AvatarNameEmailView.kt index 293373a8ab5..c2a3b268390 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/main/AvatarNameEmailView.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/main/AvatarNameEmailView.kt @@ -89,7 +89,7 @@ class AvatarNameEmailView @JvmOverloads constructor( private fun ViewAvatarNameEmailBinding.setNameAndEmail( correspondent: Correspondent, - isCorrespondentCertified: Boolean = false + isCorrespondentCertified: Boolean = false, ) { val filledSingleField = fillInUserNameAndEmail(correspondent, userName, userEmail, ignoreIsMe = !processNameAndEmail) if (displayAsAttendee) { diff --git a/app/src/main/java/com/infomaniak/mail/ui/main/folder/ThreadListAdapter.kt b/app/src/main/java/com/infomaniak/mail/ui/main/folder/ThreadListAdapter.kt index 35257524a75..10670ab811b 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/main/folder/ThreadListAdapter.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/main/folder/ThreadListAdapter.kt @@ -402,7 +402,7 @@ class ThreadListAdapter @Inject constructor( private fun CardviewThreadItemBinding.displayAvatar(thread: Thread) { val (recipient, bimi) = thread.computeAvatarRecipient() - if (bimi != null && bimi.isCertified) { + if (bimi?.isCertified == true) { expeditorAvatar.loadBimiAvatar(ApiRoutes.bimi(bimi.svgContentUrl.toString()), recipient) } else { expeditorAvatar.loadAvatar(recipient) diff --git a/app/src/main/java/com/infomaniak/mail/ui/main/thread/DetailedRecipientAdapter.kt b/app/src/main/java/com/infomaniak/mail/ui/main/thread/DetailedRecipientAdapter.kt index 251bb377054..5168f58c562 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/main/thread/DetailedRecipientAdapter.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/main/thread/DetailedRecipientAdapter.kt @@ -30,11 +30,13 @@ import com.infomaniak.mail.ui.main.thread.DetailedRecipientAdapter.DetailedRecip import com.infomaniak.mail.utils.UiUtils.fillInUserNameAndEmail class DetailedRecipientAdapter( - private val onContactClicked: ((contact: Recipient, bimi: Bimi?) -> Unit)? + private val onContactClicked: ((contact: Recipient, bimi: Bimi?) -> Unit)?, ) : Adapter() { private var recipients = emptyList() + private var bimi: Bimi? = null + override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): DetailedRecipientViewHolder { return DetailedRecipientViewHolder(ItemDetailedContactBinding.inflate(LayoutInflater.from(parent.context), parent, false)) } diff --git a/app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadAdapter.kt b/app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadAdapter.kt index e59dd70c2d8..9dc6ea545e4 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadAdapter.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadAdapter.kt @@ -122,7 +122,7 @@ class ThreadAdapter( shouldLoadDistantResources, threadAdapterCallbacks?.onContactClicked, threadAdapterCallbacks?.onAttachmentClicked, - threadAdapterCallbacks?.onAttachmentOptionsClicked + threadAdapterCallbacks?.onAttachmentOptionsClicked, ) } else { SuperCollapsedBlockViewHolder(ItemSuperCollapsedBlockBinding.inflate(layoutInflater, parent, false)) @@ -719,7 +719,7 @@ class ThreadAdapter( private val shouldLoadDistantResources: Boolean, onContactClicked: ((contact: Recipient, bimi: Bimi?) -> Unit)?, onAttachmentClicked: ((attachment: Attachment) -> Unit)?, - onAttachmentOptionsClicked: ((attachment: Attachment) -> Unit)? + onAttachmentOptionsClicked: ((attachment: Attachment) -> Unit)?, ) : ThreadAdapterViewHolder(binding) { val fromAdapter = DetailedRecipientAdapter(onContactClicked) diff --git a/app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadFragment.kt b/app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadFragment.kt index a0600aca518..7283fee3006 100644 --- a/app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadFragment.kt +++ b/app/src/main/java/com/infomaniak/mail/ui/main/thread/ThreadFragment.kt @@ -227,10 +227,7 @@ class ThreadFragment : Fragment() { onContactClicked = { recipient, bimi -> safeNavigate( resId = R.id.detailedContactBottomSheetDialog, - args = DetailedContactBottomSheetDialogArgs( - recipient = recipient, - bimi - ).toBundle(), + args = DetailedContactBottomSheetDialogArgs(recipient, bimi).toBundle(), ) }, onDraftClicked = { message -> diff --git a/app/src/main/java/com/infomaniak/mail/views/AvatarView.kt b/app/src/main/java/com/infomaniak/mail/views/AvatarView.kt index dee821b40cc..11a05718177 100644 --- a/app/src/main/java/com/infomaniak/mail/views/AvatarView.kt +++ b/app/src/main/java/com/infomaniak/mail/views/AvatarView.kt @@ -58,11 +58,11 @@ class AvatarView @JvmOverloads constructor( private val binding by lazy { ViewAvatarBinding.inflate(LayoutInflater.from(context), this, true) } private var currentCorrespondent: Correspondent? = null - private var isBimiShow: Boolean = false + private var isBimiShown: Boolean = false private val mergedContactObserver = Observer { contacts -> currentCorrespondent?.let { correspondent -> - if (!isBimiShow) loadAvatarUsingDictionary(correspondent, contacts) + if (!isBimiShown) loadAvatarUsingDictionary(correspondent, contacts) } } @@ -149,15 +149,15 @@ class AvatarView @JvmOverloads constructor( binding.avatarImage.load(R.drawable.ic_unknown_user_avatar) } - fun loadBimiAvatar(urlBimi: String, correspondent: Correspondent?) = with(binding.avatarImage) { + fun loadBimiAvatar(bimiUrl: String, correspondent: Correspondent?) = with(binding.avatarImage) { contentDescription = correspondent?.email.orEmpty() - isBimiShow = urlBimi.isNotEmpty() + isBimiShown = bimiUrl.isNotEmpty() loadAvatar( backgroundColor = context.getBackgroundColorBasedOnId( correspondent?.email.orEmpty().hashCode(), - R.array.AvatarColors + R.array.AvatarColors, ), - avatarUrl = urlBimi, + avatarUrl = bimiUrl, initials = correspondent?.initials.orEmpty(), imageLoader = svgImageLoader, initialsColor = context.getColor(R.color.onColorfulBackground), diff --git a/app/src/main/res/drawable/ic_certified.xml b/app/src/main/res/drawable/ic_certified.xml index 5944af3f9d2..3d0defd282a 100644 --- a/app/src/main/res/drawable/ic_certified.xml +++ b/app/src/main/res/drawable/ic_certified.xml @@ -1,6 +1,6 @@