From 6cb359b2d0df3e2b5e67fb87ccfbc3450cf1b0f8 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Tue, 30 Aug 2022 13:44:12 -0300 Subject: [PATCH] Prevent header decoration from passing NO_POSITION to getHeaderId. --- .../thoughtcrime/securesms/util/StickyHeaderDecoration.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 e5aee4fdfc..c58e6d2e43 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/StickyHeaderDecoration.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/StickyHeaderDecoration.java @@ -131,13 +131,16 @@ public class StickyHeaderDecoration extends RecyclerView.ItemDecoration { final View child = parent.getChildAt(translatedChildPosition(parent, layoutPos)); final int adapterPos = parent.getChildAdapterPosition(child); + if (adapterPos == RecyclerView.NO_POSITION) { + continue; + } final long key = adapter.getHeaderId(adapterPos); if (key == StickyHeaderAdapter.NO_HEADER_ID) { start = layoutPos + 1; } - if (adapterPos != RecyclerView.NO_POSITION && ((layoutPos == start && sticky) || hasHeader(parent, adapter, adapterPos))) { + if (((layoutPos == start && sticky) || hasHeader(parent, adapter, adapterPos))) { View header = getHeader(parent, adapter, adapterPos).itemView; c.save(); final int left = parent.getLeft();