From ac713124e7a6b336abf8114abed90b79568e2cde Mon Sep 17 00:00:00 2001 From: SpiritCroc Date: Fri, 20 Nov 2020 09:44:53 +0100 Subject: [PATCH] Single-side bubbles don't need margin to other side The margin is there for dual-side bubbles, so the bubbles are more connected to the same side of the sender avatar. For single-side bubbles, this is a waste of space, so remove it for this scenario. Change-Id: Ib70cd0b1d30c2a8dbb356c80bd12a8310dceda8c --- .../home/room/detail/timeline/item/AbsMessageItem.kt | 12 ++++++++---- .../detail/timeline/item/MessageImageVideoItem.kt | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/AbsMessageItem.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/AbsMessageItem.kt index 5a5d25759f..8e6df5ace1 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/AbsMessageItem.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/AbsMessageItem.kt @@ -287,8 +287,12 @@ abstract class AbsMessageItem : AbsBaseMessageItem return attributes.informationData.sentByMe } - open fun getBubbleMargin(density: Float, reverseBubble: Boolean): Int { - return round(96*density).toInt() + open fun getBubbleMargin(density: Float, bubbleStyle: String, reverseBubble: Boolean): Int { + return when (bubbleStyle) { + BubbleThemeUtils.BUBBLE_STYLE_START, + BubbleThemeUtils.BUBBLE_STYLE_START_HIDDEN -> 0 + else -> round(96*density).toInt() + } } open fun allowFooterOverlay(holder: H): Boolean { @@ -353,11 +357,11 @@ abstract class AbsMessageItem : AbsBaseMessageItem val density = bubbleView.resources.displayMetrics.density // TODO 96 = 2 * avatar size? if (reverseBubble) { - (bubbleView.layoutParams as ViewGroup.MarginLayoutParams).marginStart = getBubbleMargin(density, reverseBubble) + (bubbleView.layoutParams as ViewGroup.MarginLayoutParams).marginStart = getBubbleMargin(density, bubbleStyle, reverseBubble) (bubbleView.layoutParams as ViewGroup.MarginLayoutParams).marginEnd = 0 } else { (bubbleView.layoutParams as ViewGroup.MarginLayoutParams).marginStart = 0 - (bubbleView.layoutParams as ViewGroup.MarginLayoutParams).marginEnd = getBubbleMargin(density, reverseBubble) + (bubbleView.layoutParams as ViewGroup.MarginLayoutParams).marginEnd = getBubbleMargin(density, bubbleStyle, reverseBubble) } /* (bubbleView.layoutParams as RelativeLayout.LayoutParams).marginStart = round(20*density).toInt() diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessageImageVideoItem.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessageImageVideoItem.kt index b32b8be474..9af9fbeac3 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessageImageVideoItem.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/item/MessageImageVideoItem.kt @@ -97,7 +97,7 @@ abstract class MessageImageVideoItem : AbsMessageItem