Skip to content

Commit 18f0a32

Browse files
authored
Merge pull request #6397 from nextcloud/fix/6351/chatBubbleWidth
adjust chat bubble size
2 parents 9fa39a3 + f763469 commit 18f0a32

1 file changed

Lines changed: 32 additions & 23 deletions

File tree

app/src/main/java/com/nextcloud/talk/ui/chat/ChatMessageScaffold.kt

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import androidx.compose.foundation.horizontalScroll
1515
import androidx.compose.foundation.layout.Arrangement
1616
import androidx.compose.foundation.layout.Box
1717
import androidx.compose.foundation.layout.BoxScope
18+
import androidx.compose.foundation.layout.BoxWithConstraints
1819
import androidx.compose.foundation.layout.Column
1920
import androidx.compose.foundation.layout.ColumnScope
2021
import androidx.compose.foundation.layout.Row
@@ -57,6 +58,7 @@ import androidx.compose.ui.text.font.FontWeight
5758
import androidx.compose.ui.text.style.TextAlign
5859
import androidx.compose.ui.text.style.TextOverflow
5960
import androidx.compose.ui.tooling.preview.Preview
61+
import androidx.compose.ui.unit.Dp
6062
import androidx.compose.ui.unit.dp
6163
import androidx.compose.ui.unit.sp
6264
import androidx.core.graphics.ColorUtils
@@ -81,6 +83,7 @@ private const val SINGLE_EMOJI_SIZE_MULTIPLIER = 2.5f
8183
private const val HALF_OPACITY = 127
8284
private const val MESSAGE_LENGTH_THRESHOLD = 25
8385
private const val ANIMATED_BLINK = 500
86+
private const val MESSAGE_BUBBLE_MAX_WIDTH_FRACTION = 0.8f
8487

8588
private val bubbleRadiusBig = 10.dp
8689
private val bubbleRadiusSmall = 2.dp
@@ -222,28 +225,33 @@ fun MessageScaffold(
222225
}
223226
}
224227

225-
Row(
226-
modifier = Modifier.fillMaxWidth(),
227-
horizontalArrangement = if (incoming) Arrangement.Start else Arrangement.End
228-
) {
229-
MessageLeadingDecoration(
230-
uiMessage = uiMessage,
231-
isOneToOneConversation = isOneToOneConversation
232-
)
233-
MessageBubbleWithReactions(
234-
uiMessage = uiMessage,
235-
incoming = incoming,
236-
includePadding = includePadding,
237-
isOneToOneConversation = isOneToOneConversation,
238-
conversationThreadId = conversationThreadId,
239-
shape = shape,
240-
resolvedBubbleColor = resolvedBubbleColor,
241-
metadataLayoutMode = metadataLayoutMode,
242-
captionText = captionText,
243-
showInlineMetadata = showInlineMetadata,
244-
showQuote = showQuote,
245-
content = content
246-
)
228+
BoxWithConstraints(modifier = Modifier.fillMaxWidth()) {
229+
val messageBubbleMaxWidth = maxWidth * MESSAGE_BUBBLE_MAX_WIDTH_FRACTION
230+
231+
Row(
232+
modifier = Modifier.fillMaxWidth(),
233+
horizontalArrangement = if (incoming) Arrangement.Start else Arrangement.End
234+
) {
235+
MessageLeadingDecoration(
236+
uiMessage = uiMessage,
237+
isOneToOneConversation = isOneToOneConversation
238+
)
239+
MessageBubbleWithReactions(
240+
uiMessage = uiMessage,
241+
incoming = incoming,
242+
includePadding = includePadding,
243+
isOneToOneConversation = isOneToOneConversation,
244+
conversationThreadId = conversationThreadId,
245+
maxBubbleWidth = messageBubbleMaxWidth,
246+
shape = shape,
247+
resolvedBubbleColor = resolvedBubbleColor,
248+
metadataLayoutMode = metadataLayoutMode,
249+
captionText = captionText,
250+
showInlineMetadata = showInlineMetadata,
251+
showQuote = showQuote,
252+
content = content
253+
)
254+
}
247255
}
248256
}
249257

@@ -282,6 +290,7 @@ private fun MessageBubbleWithReactions(
282290
includePadding: Boolean,
283291
isOneToOneConversation: Boolean,
284292
conversationThreadId: Long?,
293+
maxBubbleWidth: Dp,
285294
shape: RoundedCornerShape,
286295
resolvedBubbleColor: Color,
287296
metadataLayoutMode: MetadataLayoutMode,
@@ -292,7 +301,7 @@ private fun MessageBubbleWithReactions(
292301
) {
293302
val bubbleModifier = Modifier
294303
.defaultMinSize(60.dp, 40.dp)
295-
.widthIn(60.dp, 280.dp)
304+
.widthIn(60.dp, maxBubbleWidth)
296305

297306
val hasReactionsOrThread = uiMessage.reactions.isNotEmpty() ||
298307
isFirstMessageOfThreadInNormalChat(uiMessage, conversationThreadId)

0 commit comments

Comments
 (0)