From daacb3ca98f9ffdd36bacbbe82259471821c33d6 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 12 Oct 2023 16:55:35 +0200 Subject: [PATCH] Huge performances boost by removing AvatarView, todo: do it everywhere --- app/src/main/java/org/linphone/LinphoneApplication.kt | 6 +----- .../main/java/org/linphone/utils/DataBindingUtils.kt | 9 +++++++-- app/src/main/res/layout/chat_bubble_incoming.xml | 11 ++--------- 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/app/src/main/java/org/linphone/LinphoneApplication.kt b/app/src/main/java/org/linphone/LinphoneApplication.kt index 107992dd6..6ff062094 100644 --- a/app/src/main/java/org/linphone/LinphoneApplication.kt +++ b/app/src/main/java/org/linphone/LinphoneApplication.kt @@ -90,11 +90,7 @@ class LinphoneApplication : Application(), ImageLoaderFactory { .components { add(VideoFrameDecoder.Factory()) add(SvgDecoder.Factory()) - if (Version.sdkAboveOrEqual(Version.API28_PIE_90)) { - add(ImageDecoderDecoder.Factory()) - } else { - add(GifDecoder.Factory()) - } + add(ImageDecoderDecoder.Factory()) } .memoryCache { MemoryCache.Builder(this) diff --git a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt index b1770b330..d9f7a16ab 100644 --- a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt +++ b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt @@ -173,10 +173,10 @@ fun AppCompatTextView.setDrawableTint(@ColorInt color: Int) { @UiThread @BindingAdapter("coil") -fun loadPictureWithCoil(imageView: ImageView, file: String?) { +fun ImageView.loadCircleFileWithCoil(file: String?) { Log.i("[Data Binding Utils] Loading file [$file] with coil") if (file != null) { - imageView.load(file) { + load(file) { transformations(CircleCropTransformation()) } } @@ -309,6 +309,11 @@ fun AvatarView.loadContactAvatar(contact: ContactAvatarModel?) { } } +@BindingAdapter("contactPicture") +fun ImageView.loadContactPicture(contact: ContactAvatarModel?) { + loadCircleFileWithCoil(contact?.avatar?.value?.toString()) +} + @UiThread @BindingAdapter("groupAvatar") fun AvatarView.loadGroupAvatar(contact: GroupAvatarModel?) { diff --git a/app/src/main/res/layout/chat_bubble_incoming.xml b/app/src/main/res/layout/chat_bubble_incoming.xml index a7f22e184..e2934bb67 100644 --- a/app/src/main/res/layout/chat_bubble_incoming.xml +++ b/app/src/main/res/layout/chat_bubble_incoming.xml @@ -22,21 +22,14 @@ android:layout_marginTop="@{model.isGroupedWithPreviousOne ? @dimen/chat_bubble_grouped_top_margin : @dimen/chat_bubble_top_margin, default=@dimen/chat_bubble_top_margin}" android:layout_marginStart="16dp"> -