summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Ibrahim Yilmaz <iyz@google.com> 2024-03-12 21:29:37 +0000
committer Ibrahim Yilmaz <iyz@google.com> 2024-03-13 15:05:54 +0000
commit514616b728fa9d5dbdd4d16f59f332ac378cec3c (patch)
tree7479c14fa6aa150d9026e82676b5f4ff0ebdd247
parent2153fff8562be10694f5457d491a257c905a17e8 (diff)
[Conversation Notification] match sync/async image loading
Fixes: 329166814 Test: Presubmit + screenshot tests Flag: None Change-Id: I02940a15b27f6830fff3c99fdd54c7b9151447be
-rw-r--r--core/java/com/android/internal/widget/CachingIconView.java2
-rw-r--r--core/java/com/android/internal/widget/ConversationLayout.java26
2 files changed, 19 insertions, 9 deletions
diff --git a/core/java/com/android/internal/widget/CachingIconView.java b/core/java/com/android/internal/widget/CachingIconView.java
index 8ddd4ffd3065..d67a63046723 100644
--- a/core/java/com/android/internal/widget/CachingIconView.java
+++ b/core/java/com/android/internal/widget/CachingIconView.java
@@ -113,7 +113,7 @@ public class CachingIconView extends ImageView {
}
@Nullable
- private Drawable loadSizeRestrictedIcon(@Nullable Icon icon) {
+ Drawable loadSizeRestrictedIcon(@Nullable Icon icon) {
return LocalImageResolver.resolveImage(icon, getContext(), mMaxDrawableWidth,
mMaxDrawableHeight);
}
diff --git a/core/java/com/android/internal/widget/ConversationLayout.java b/core/java/com/android/internal/widget/ConversationLayout.java
index 06835f00755f..6d5a96ae9a09 100644
--- a/core/java/com/android/internal/widget/ConversationLayout.java
+++ b/core/java/com/android/internal/widget/ConversationLayout.java
@@ -37,7 +37,6 @@ import android.graphics.Typeface;
import android.graphics.drawable.Drawable;
import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.Icon;
-import android.net.Uri;
import android.os.Bundle;
import android.os.Parcelable;
import android.text.Spannable;
@@ -1216,7 +1215,7 @@ public class ConversationLayout extends FrameLayout
return new ConversationHeaderData(
conversationText,
new OneToOneConversationAvatarData(
- resolveAvatarImage(conversationIcon)));
+ resolveAvatarImageForOneToOne(conversationIcon)));
}
final List<List<Notification.MessagingStyle.Message>> groupMessages = new ArrayList<>();
@@ -1283,18 +1282,29 @@ public class ConversationLayout extends FrameLayout
return new ConversationHeaderData(
conversationText,
- new GroupConversationAvatarData(resolveAvatarImage(lastIcon),
- resolveAvatarImage(secondLastIcon)));
+ new GroupConversationAvatarData(resolveAvatarImageForFacePile(lastIcon),
+ resolveAvatarImageForFacePile(secondLastIcon)));
}
/**
- * {@link ImageResolver#loadImage(Uri)} accepts Uri to load images. However Conversation Avatars
- * are received as Icon. So, we can't make use of ImageResolver.
+ * One To One Conversation Avatars is loaded by CachingIconView(conversation icon view).
*/
@Nullable
- private Drawable resolveAvatarImage(Icon conversationIcon) {
+ private Drawable resolveAvatarImageForOneToOne(Icon conversationIcon) {
try {
- return LocalImageResolver.resolveImage(conversationIcon, getContext());
+ return mConversationIconView.loadSizeRestrictedIcon(conversationIcon);
+ } catch (Exception ex) {
+ return null;
+ }
+ }
+
+ /**
+ * Group Avatar drawables are loaded by Icon.
+ */
+ @Nullable
+ private Drawable resolveAvatarImageForFacePile(Icon conversationIcon) {
+ try {
+ return conversationIcon.loadDrawable(getContext());
} catch (Exception ex) {
return null;
}