From edfe89683b54151e16efaf5c1fe1aa8f9cceb471 Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Tue, 28 Apr 2026 14:06:33 -0400 Subject: [PATCH] Attempt to fix date headers overlaping scheduled messages. --- .../securesms/conversation/ScheduledMessagesBottomSheet.kt | 7 ++++++- .../securesms/util/StickyHeaderDecoration.java | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/ScheduledMessagesBottomSheet.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/ScheduledMessagesBottomSheet.kt index e769c82bff..18407f1cfe 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/ScheduledMessagesBottomSheet.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/ScheduledMessagesBottomSheet.kt @@ -100,6 +100,8 @@ class ScheduledMessagesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment setCondensedMode(ConversationItemDisplayMode.Condensed(ConversationItemDisplayMode.MessageMode.SCHEDULED)) } + val stickyHeaders = StickyHeaderDecoration(messageAdapter, false, false, ConversationAdapter.HEADER_TYPE_INLINE_DATE) + val list: RecyclerView = view.findViewById(R.id.scheduled_list).apply { layoutManager = SmoothScrollingLinearLayoutManager(requireContext(), true) adapter = messageAdapter @@ -107,7 +109,7 @@ class ScheduledMessagesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment doOnNextLayout { // Adding this without waiting for a layout pass would result in an indeterminate amount of padding added to the top of the view - addItemDecoration(StickyHeaderDecoration(messageAdapter, false, false, ConversationAdapter.HEADER_TYPE_INLINE_DATE)) + addItemDecoration(stickyHeaders) } } @@ -127,6 +129,9 @@ class ScheduledMessagesBottomSheet : FixedRoundedCornerBottomSheetDialogFragment } else if (!list.canScrollVertically(1)) { list.layoutManager?.scrollToPosition(0) } + + stickyHeaders.invalidateCache() + list.invalidateItemDecorations() } recyclerViewColorizer.setChatColors(conversationRecipient.chatColors) } diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/StickyHeaderDecoration.java b/app/src/main/java/org/thoughtcrime/securesms/util/StickyHeaderDecoration.java index c58e6d2e43..a07e8ccf97 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/StickyHeaderDecoration.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/StickyHeaderDecoration.java @@ -200,6 +200,10 @@ public class StickyHeaderDecoration extends RecyclerView.ItemDecoration { ((LinearLayoutManager)parent.getLayoutManager()).getReverseLayout(); } + public void invalidateCache() { + headerCache.clear(); + } + /** * The adapter to assist the {@link StickyHeaderDecoration} in creating and binding the header views. */