diff --git a/app/src/main/java/org/thoughtcrime/securesms/avatar/fallback/FallbackAvatar.kt b/app/src/main/java/org/thoughtcrime/securesms/avatar/fallback/FallbackAvatar.kt index 601d6bdbf3..f3628e31c0 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/avatar/fallback/FallbackAvatar.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/avatar/fallback/FallbackAvatar.kt @@ -46,9 +46,9 @@ sealed interface FallbackAvatar { fun getIconBySize(size: Size): Int /** - * Local user + * Note to Self / local user */ - data class Local(override val color: AvatarColor) : Resource { + data class NoteToSelf(override val color: AvatarColor) : Resource { override fun getIconBySize(size: Size): Int { return when (size) { Size.SMALL -> R.drawable.symbol_note_compact_16 diff --git a/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.kt b/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.kt index 50357e5f45..adbd0ccf8d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/recipients/Recipient.kt @@ -709,7 +709,7 @@ class Recipient( fun getFallbackAvatar(): FallbackAvatar { return if (isSelf) { - FallbackAvatar.Resource.Local(avatarColor) + FallbackAvatar.Resource.NoteToSelf(avatarColor) } else if (isResolving) { FallbackAvatar.Transparent } else if (isDistributionList) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/AvatarUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/AvatarUtil.java index d365fda5f5..0da6f69848 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/AvatarUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/AvatarUtil.java @@ -30,6 +30,7 @@ import org.signal.core.util.logging.Log; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.avatar.fallback.FallbackAvatar; import org.thoughtcrime.securesms.avatar.fallback.FallbackAvatarDrawable; +import org.thoughtcrime.securesms.conversation.colors.AvatarColor; import org.thoughtcrime.securesms.contacts.avatars.ContactPhoto; import org.thoughtcrime.securesms.contacts.avatars.ProfileContactPhoto; import org.thoughtcrime.securesms.conversation.colors.AvatarGradientColors; @@ -126,7 +127,12 @@ public final class AvatarUtil { */ @WorkerThread public static @NonNull IconCompat getIconCompatForShortcut(@NonNull Context context, @NonNull Recipient recipient) { - return IconCompat.createWithBitmap(getBitmapForNotification(context, recipient, AdaptiveBitmapMetrics.getInnerWidth())); + int size = AdaptiveBitmapMetrics.getInnerWidth(); + if (recipient.isSelf()) { + Drawable noteToSelfDrawable = getNoteToSelfDrawable(context, recipient.getAvatarColor(), size); + return IconCompat.createWithBitmap(DrawableUtil.toBitmap(noteToSelfDrawable, size, size)); + } + return IconCompat.createWithBitmap(getBitmapForNotification(context, recipient, size)); } @WorkerThread @@ -138,10 +144,6 @@ public final class AvatarUtil { public static @NonNull Bitmap getBitmapForNotification(@NonNull Context context, @NonNull Recipient recipient, int size) { ThreadUtil.assertNotMainThread(); - if (recipient.isSelf()) { - return DrawableUtil.toBitmap(getFallback(context, recipient, size), size, size); - } - try { AvatarTarget avatarTarget = new AvatarTarget(size); RequestManager requestManager = Glide.with(context); @@ -193,18 +195,23 @@ public final class AvatarUtil { } } + @NonNull private static Drawable getFallback(@NonNull Context context, @NonNull Recipient recipient, int targetSize) { - FallbackAvatar fallbackAvatar; - if (recipient.isSelf()) { - fallbackAvatar = recipient.getFallbackAvatar(); - } else { - fallbackAvatar = FallbackAvatar.forTextOrDefault(recipient.getDisplayName(context), recipient.getAvatarColor()); - } + FallbackAvatar fallbackAvatar = recipient.isSelf() ? recipient.getFallbackAvatar() + : FallbackAvatar.forTextOrDefault(recipient.getDisplayName(context), recipient.getAvatarColor()); + return createFallbackDrawable(context, fallbackAvatar, targetSize); + } - Drawable avatar = new FallbackAvatarDrawable(context, fallbackAvatar).circleCrop(); - avatar.setBounds(0, 0, targetSize, targetSize); + @NonNull + private static Drawable getNoteToSelfDrawable(@NonNull Context context, @NonNull AvatarColor avatarColor, int size) { + return createFallbackDrawable(context, new FallbackAvatar.Resource.NoteToSelf(avatarColor), size); + } - return avatar; + @NonNull + private static Drawable createFallbackDrawable(@NonNull Context context, @NonNull FallbackAvatar avatar, int size) { + Drawable drawable = new FallbackAvatarDrawable(context, avatar).circleCrop(); + drawable.setBounds(0, 0, size, size); + return drawable; } /**