From 25d4c1b43041304e038cdeccc1b413f58b19a2f3 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Thu, 21 Feb 2019 10:24:19 +0100 Subject: [PATCH] Using glide to display images in chat --- app/build.gradle | 2 ++ .../linphone/chat/ChatMessageViewHolder.java | 33 ++----------------- .../main/res/layout/chat_bubble_content.xml | 6 ++-- 3 files changed, 8 insertions(+), 33 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index af82672fd..f08de85f9 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -144,6 +144,8 @@ dependencies { implementation 'androidx.appcompat:appcompat:1.0.2' implementation 'com.google.android.material:material:1.1.0-alpha02' implementation 'com.google.android:flexbox:1.1.0' + implementation 'com.github.bumptech.glide:glide:4.9.0' + annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0' if (isLocalAarAvailable()) { implementation project(":linphone-sdk-android") diff --git a/app/src/main/java/org/linphone/chat/ChatMessageViewHolder.java b/app/src/main/java/org/linphone/chat/ChatMessageViewHolder.java index e79b83385..987bbd808 100644 --- a/app/src/main/java/org/linphone/chat/ChatMessageViewHolder.java +++ b/app/src/main/java/org/linphone/chat/ChatMessageViewHolder.java @@ -25,8 +25,6 @@ import android.Manifest; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; -import android.graphics.Bitmap; -import android.graphics.BitmapFactory; import android.net.Uri; import android.text.Spanned; import android.text.method.LinkMovementMethod; @@ -42,6 +40,7 @@ import android.widget.RelativeLayout; import android.widget.TextView; import androidx.core.content.FileProvider; import androidx.recyclerview.widget.RecyclerView; +import com.bumptech.glide.Glide; import com.google.android.flexbox.FlexboxLayout; import java.io.File; import java.util.ArrayList; @@ -57,8 +56,6 @@ import org.linphone.core.tools.Log; import org.linphone.utils.FileUtils; import org.linphone.utils.ImageUtils; import org.linphone.utils.LinphoneUtils; -import org.linphone.views.AsyncBitmap; -import org.linphone.views.BitmapWorkerTask; import org.linphone.views.ContactAvatar; public class ChatMessageViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener { @@ -347,32 +344,6 @@ public class ChatMessageViewHolder extends RecyclerView.ViewHolder implements Vi } private void loadBitmap(String path, ImageView imageView) { - if (cancelPotentialWork(path, imageView)) { - Bitmap defaultBitmap = - BitmapFactory.decodeResource(mContext.getResources(), R.drawable.chat_file); - BitmapWorkerTask task = new BitmapWorkerTask(mContext, imageView, defaultBitmap); - final AsyncBitmap asyncBitmap = - new AsyncBitmap(mContext.getResources(), defaultBitmap, task); - imageView.setImageDrawable(asyncBitmap); - task.execute(path); - } - } - - private boolean cancelPotentialWork(String path, ImageView imageView) { - final BitmapWorkerTask bitmapWorkerTask = BitmapWorkerTask.getBitmapWorkerTask(imageView); - - if (bitmapWorkerTask != null) { - final String bitmapData = bitmapWorkerTask.path; - // If bitmapData is not yet set or it differs from the new data - if (bitmapData == null || !bitmapData.equals(path)) { - // Cancel previous task - bitmapWorkerTask.cancel(true); - } else { - // The same work is already in progress - return false; - } - } - // No task associated with the ImageView, or an existing task was cancelled - return true; + Glide.with(mContext).load(path).into(imageView); } } diff --git a/app/src/main/res/layout/chat_bubble_content.xml b/app/src/main/res/layout/chat_bubble_content.xml index 0c1c60872..9a357fde2 100644 --- a/app/src/main/res/layout/chat_bubble_content.xml +++ b/app/src/main/res/layout/chat_bubble_content.xml @@ -6,7 +6,8 @@ @@ -14,7 +15,8 @@