Bug 1402145 - Use adapter child position rather than view position. r?mcomella
MozReview-Commit-ID: ESi8MMYC1lp
--- 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;