From 008238ef439d7cdd8b227863261f5ed7086aba52 Mon Sep 17 00:00:00 2001 From: Sunny Goyal Date: Mon, 27 Jun 2022 11:25:20 -0700 Subject: [PATCH] Fixing widget size cache loop end-boundary Bug: 236961658 Test: Verified on device Change-Id: Ied629cd875a01abc45a7d055edfde5e156de53ea --- .../android/launcher3/widget/picker/WidgetsRecyclerView.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/com/android/launcher3/widget/picker/WidgetsRecyclerView.java b/src/com/android/launcher3/widget/picker/WidgetsRecyclerView.java index 4c0e0d595f..35fa7a42cc 100644 --- a/src/com/android/launcher3/widget/picker/WidgetsRecyclerView.java +++ b/src/com/android/launcher3/widget/picker/WidgetsRecyclerView.java @@ -173,11 +173,12 @@ public class WidgetsRecyclerView extends FastScrollRecyclerView implements OnIte @Override protected int getItemsHeight(int untilIndex) { // Initialize cache - int childCount = Math.min(getChildCount(), getAdapter().getItemCount()); + int childCount = getChildCount(); int startPosition; if (childCount > 0 && ((startPosition = getChildAdapterPosition(getChildAt(0))) != NO_POSITION)) { - for (int i = 0; i < childCount; i++) { + int loopCount = Math.min(getChildCount(), getAdapter().getItemCount() - startPosition); + for (int i = 0; i < loopCount; i++) { mCachedSizes.put( mAdapter.getItemViewType(startPosition + i), getChildAt(i).getMeasuredHeight());