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 @@