From 665ce14bb684e4c3e8422e2c9b3546cff0f9e44d Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Wed, 2 Jun 2021 14:49:26 -0300 Subject: [PATCH] Fix RTL issue with thumbnail masking. --- .../securesms/conversation/ConversationItem.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java index ffd88c0542..dd91fbf9ca 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ConversationItem.java @@ -1306,6 +1306,14 @@ public final class ConversationItem extends RelativeLayout implements BindableCo } } + private @NonNull Projection.Corners getBodyBubbleCorners(int topStart, int topEnd, int bottomEnd, int bottomStart) { + if (ViewUtil.isRtl(this)) { + return new Projection.Corners(topEnd, topStart, bottomStart, bottomEnd); + } else { + return new Projection.Corners(topStart, topEnd, bottomEnd, bottomStart); + } + } + private void setMessageShape(@NonNull MessageRecord current, @NonNull Optional previous, @NonNull Optional next, boolean isGroupThread) { int bigRadius = readDimen(R.dimen.message_corner_radius); int smallRadius = readDimen(R.dimen.message_corner_collapse_radius); @@ -1329,7 +1337,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo background = R.drawable.message_bubble_background_sent_start; setOutlinerRadii(outliner, bigRadius, bigRadius, smallRadius, bigRadius); setOutlinerRadii(pulseOutliner, bigRadius, bigRadius, smallRadius, bigRadius); - bodyBubbleCorners = new Projection.Corners(bigRadius, bigRadius, smallRadius, bigRadius); + bodyBubbleCorners = getBodyBubbleCorners(bigRadius, bigRadius, smallRadius, bigRadius); } else { background = R.drawable.message_bubble_background_received_start; setOutlinerRadii(outliner, bigRadius, bigRadius, bigRadius, smallRadius); @@ -1341,7 +1349,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo background = R.drawable.message_bubble_background_sent_end; setOutlinerRadii(outliner, bigRadius, smallRadius, bigRadius, bigRadius); setOutlinerRadii(pulseOutliner, bigRadius, smallRadius, bigRadius, bigRadius); - bodyBubbleCorners = new Projection.Corners(bigRadius, smallRadius, bigRadius, bigRadius); + bodyBubbleCorners = getBodyBubbleCorners(bigRadius, smallRadius, bigRadius, bigRadius); } else { background = R.drawable.message_bubble_background_received_end; setOutlinerRadii(outliner, smallRadius, bigRadius, bigRadius, bigRadius); @@ -1353,7 +1361,7 @@ public final class ConversationItem extends RelativeLayout implements BindableCo background = R.drawable.message_bubble_background_sent_middle; setOutlinerRadii(outliner, bigRadius, smallRadius, smallRadius, bigRadius); setOutlinerRadii(pulseOutliner, bigRadius, smallRadius, smallRadius, bigRadius); - bodyBubbleCorners = new Projection.Corners(bigRadius, smallRadius, smallRadius, bigRadius); + bodyBubbleCorners = getBodyBubbleCorners(bigRadius, smallRadius, smallRadius, bigRadius); } else { background = R.drawable.message_bubble_background_received_middle; setOutlinerRadii(outliner, smallRadius, bigRadius, bigRadius, smallRadius);