Bug 1402145 - Use adapter child position rather than view position. r?mcomella draft
authorChenxia Liu <liuche@mozilla.com>
Fri, 22 Sep 2017 09:09:23 -0700
changeset 669257 79efa70819c780827ba79ce10137716e0536a769
parent 668548 ca7d18dbacbf103d74a3213d8d08a7c3e4def9a2
child 732910 2b2956c92a78a9a412afeda1f55528db092ccd81
push id81276
push usercliu@mozilla.com
push dateFri, 22 Sep 2017 20:51:03 +0000
reviewersmcomella
bugs1402145
milestone58.0a1
Bug 1402145 - Use adapter child position rather than view position. r?mcomella MozReview-Commit-ID: ESi8MMYC1lp
mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/HighlightsDividerItemDecoration.java
--- a/mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/HighlightsDividerItemDecoration.java
+++ b/mobile/android/base/java/org/mozilla/gecko/activitystream/homepanel/HighlightsDividerItemDecoration.java
@@ -37,26 +37,28 @@ import android.view.View;
     public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
         final int left = parent.getPaddingLeft();
         final int right = parent.getWidth() - parent.getPaddingRight();
 
         final int childCount = parent.getChildCount();
         for (int i = 0; i < childCount; i++) {
             final View child = parent.getChildAt(i);
 
-            if (parent.getChildAdapterPosition(child) < START_DRAWING_AT_POSITION) {
+            final int childPosition = parent.getChildAdapterPosition(child);
+            if (childPosition == RecyclerView.NO_POSITION
+                    || childPosition < START_DRAWING_AT_POSITION) {
                 continue;
             }
 
             if (child.getVisibility() == View.GONE) {
                 continue;
             }
 
             // Do not draw dividers above section title items.
-            final int childViewType = parent.getAdapter().getItemViewType(i);
+            final int childViewType = parent.getAdapter().getItemViewType(childPosition);
             if (childViewType == StreamRecyclerAdapter.RowItemType.HIGHLIGHTS_TITLE.getViewType()
                     || childViewType == StreamRecyclerAdapter.RowItemType.TOP_STORIES_TITLE.getViewType()) {
                 continue;
             }
 
             final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child
                     .getLayoutParams();
             final int topOfDivider = child.getTop() + params.topMargin;