diff options
| author | 2024-03-12 21:29:37 +0000 | |
|---|---|---|
| committer | 2024-03-13 15:05:54 +0000 | |
| commit | 514616b728fa9d5dbdd4d16f59f332ac378cec3c (patch) | |
| tree | 7479c14fa6aa150d9026e82676b5f4ff0ebdd247 | |
| parent | 2153fff8562be10694f5457d491a257c905a17e8 (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.java | 2 | ||||
| -rw-r--r-- | core/java/com/android/internal/widget/ConversationLayout.java | 26 |
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; } |