From 6e5885dec96fa3e0cdab4175bd4cf139ba25015d Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 7 Jul 2022 11:20:39 +0200 Subject: [PATCH] Fixed random contact avatar sometimes showing in chat rooms list while scrolling instead of group chat avatar --- .../java/org/linphone/utils/DataBindingUtils.kt | 17 ++++++----------- app/src/main/res/layout/chat_room_list_cell.xml | 3 ++- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt index c134d9748..03faf68eb 100644 --- a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt +++ b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt @@ -339,20 +339,15 @@ private suspend fun loadContactPictureWithCoil( color: Int = 0, textColor: Int = 0 ) { - if (contact != null) { - val context = imageView.context + val context = imageView.context + if (contact != null && !contact.showGroupChatAvatar) { val displayName = contact.contact.value?.name ?: contact.displayName.value.orEmpty() val source = contact.contact.value?.getPictureUri(useThumbnail) + imageView.load(source) { transformations(CircleCropTransformation()) error( - if (contact.showGroupChatAvatar) { - val bg = AppCompatResources.getDrawable(context, R.drawable.generated_avatar_bg) - imageView.background = bg - AppCompatResources.getDrawable(context, R.drawable.icon_multiple_contacts_avatar) - } else if (displayName.isEmpty() || AppUtils.getInitials(displayName) == "+") { - val bg = AppCompatResources.getDrawable(context, R.drawable.generated_avatar_bg) - imageView.background = bg + if (displayName.isEmpty() || AppUtils.getInitials(displayName) == "+") { AppCompatResources.getDrawable(context, R.drawable.icon_single_contact_avatar) } else { coroutineScope { @@ -377,9 +372,9 @@ private suspend fun loadContactPictureWithCoil( } ) } + } else if (contact != null && contact.showGroupChatAvatar) { + imageView.load(AppCompatResources.getDrawable(context, R.drawable.icon_multiple_contacts_avatar)) } else { - val bg = AppCompatResources.getDrawable(imageView.context, R.drawable.generated_avatar_bg) - imageView.background = bg imageView.load(R.drawable.icon_single_contact_avatar) } } diff --git a/app/src/main/res/layout/chat_room_list_cell.xml b/app/src/main/res/layout/chat_room_list_cell.xml index 4cc6764e3..37da97da0 100644 --- a/app/src/main/res/layout/chat_room_list_cell.xml +++ b/app/src/main/res/layout/chat_room_list_cell.xml @@ -43,7 +43,8 @@ android:layout_height="@dimen/contact_avatar_size" android:layout_marginLeft="5dp" android:contentDescription="@null" - android:src="@drawable/voip_single_contact_avatar_alt" + android:background="@drawable/generated_avatar_bg" + android:src="@drawable/voip_single_contact_avatar" app:layout_constraintBottom_toTopOf="@id/date" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"