diff --git a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java index 95b1fbd9d0a62f3ecaa9a209d6f8e3adb9428020..3288572cc75930d60bffc49a94d45d0e6d33720e 100644 --- a/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java +++ b/src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java @@ -712,11 +712,13 @@ public class MessageAdapter extends ArrayAdapter { } } for (final var emoji : EmojiManager.extractEmojisInOrderWithIndex(body.toString())) { - body.setSpan( - new RelativeSizeSpan(1.2f), - emoji.getCharIndex(), - emoji.getCharIndex() + emoji.getEmoji().getEmoji().length(), - Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); + var end = emoji.getCharIndex() + emoji.getEmoji().getEmoji().length(); + if (body.length() > end) end++; // This fixes double-showing for skin tone emoji + body.setSpan( + new RelativeSizeSpan(1.2f), + emoji.getCharIndex(), + end, + Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); } if (processMarkup) StylingHelper.format(body, viewHolder.messageBody.getCurrentTextColor());