Fixed media grid using 2 lines issue when sending exactly 3 files with text

This commit is contained in:
Sylvain Berfini 2026-03-13 16:37:57 +01:00
parent d47a77520b
commit 0a63736451
4 changed files with 11 additions and 9 deletions

View file

@ -434,7 +434,9 @@ class MessageModel
val contents = chatMessage.contents
allFilesDownloaded = true
val exactly4Contents = contents.size == 4
val exactly4Contents = contents.count {
it.isFile || it.isFileTransfer
} == 4
for (content in contents) {
val isFileEncrypted = content.isFileEncrypted

View file

@ -18,23 +18,25 @@
android:layout_height="wrap_content"
app:layout_wrapBefore="@{model.flexboxLayoutWrapBefore}">
<include
<ViewStub
android:id="@+id/media_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
layout="@layout/chat_bubble_media_grid_cell"
android:layout="@layout/chat_bubble_media_grid_cell"
android:visibility="@{model.isImage || model.isVideoPreview ? View.VISIBLE : View.GONE}"
bind:inflatedVisibility="@{model.isImage || model.isVideoPreview ? View.VISIBLE : View.GONE}"
bind:model="@{model}"
bind:onLongClickListener="@{onLongClickListener}"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<include
<ViewStub
android:id="@+id/file_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
layout="@layout/chat_bubble_file_grid_cell"
android:layout="@layout/chat_bubble_file_grid_cell"
android:visibility="@{!model.isImage &amp;&amp; !model.isVideoPreview ? View.VISIBLE : View.GONE}"
bind:inflatedVisibility="@{!model.isImage &amp;&amp; !model.isVideoPreview ? View.VISIBLE : View.GONE}"
bind:model="@{model}"
bind:onLongClickListener="@{onLongClickListener}"
app:layout_constraintStart_toStartOf="parent"

View file

@ -5,7 +5,6 @@
<data>
<import type="android.view.View" />
<import type="com.google.android.flexbox.JustifyContent" />
<import type="org.linphone.core.ChatMessage.State" />
<variable
name="onLongClickListener"
@ -179,7 +178,7 @@
android:visibility="@{model.filesList.size() >= 2 ? View.VISIBLE : View.GONE, default=gone}"
app:alignItems="center"
app:flexWrap="wrap"
app:justifyContent="@{model.outgoing ? JustifyContent.FLEX_END : JustifyContent.FLEX_START}"
app:justifyContent="flex_start"
entries="@{model.filesList}"
layout="@{@layout/chat_bubble_content_grid_cell}"
onLongClick="@{onLongClickListener}"/>

View file

@ -5,7 +5,6 @@
<data>
<import type="android.view.View" />
<import type="com.google.android.flexbox.JustifyContent" />
<import type="org.linphone.core.ChatMessage.State" />
<variable
name="onLongClickListener"
@ -151,7 +150,7 @@
android:visibility="@{model.filesList.size() >= 2 ? View.VISIBLE : View.GONE, default=gone}"
app:alignItems="center"
app:flexWrap="wrap"
app:justifyContent="@{model.outgoing ? JustifyContent.FLEX_END : JustifyContent.FLEX_START}"
app:justifyContent="flex_end"
entries="@{model.filesList}"
layout="@{@layout/chat_bubble_content_grid_cell}"
onLongClick="@{onLongClickListener}"/>