From 4fe0487eafc0b3d662deb330841210efab103fcc Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 7 May 2024 13:45:43 +0200 Subject: [PATCH] Fixed display issue in media grid --- .../chat/fragment/ConversationMediaListFragment.kt | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationMediaListFragment.kt b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationMediaListFragment.kt index 8020ec4a5..da97b4677 100644 --- a/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationMediaListFragment.kt +++ b/app/src/main/java/org/linphone/ui/main/chat/fragment/ConversationMediaListFragment.kt @@ -108,10 +108,18 @@ class ConversationMediaListFragment : SlidingPaneChildFragment() { } layoutManager.spanSizeLookup = object : GridLayoutManager.SpanSizeLookup() { override fun getSpanSize(position: Int): Int { + // If not the latest item if (position < adapter.currentList.size - 1) { // Have last item of month takes all remaining horizontal space to have a "line break" if (adapter.displayHeaderForPosition(position + 1)) { - return spanCount - (position % spanCount) + // Check index that marks the start of the previous section + for (i in position downTo 0) { + if (adapter.displayHeaderForPosition(i)) { + // Compute span size depending on position in row + val diff = position - i + return spanCount - diff % spanCount + } + } } } return 1