| Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetItemDecoration.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetItemDecoration.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetItemDecoration.java
|
| index da0719b053036e8a39bf6d07e491c9fce4132696..696036fcc2ce490dbe90aca1700db33194e3007d 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetItemDecoration.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetItemDecoration.java
|
| @@ -62,9 +62,13 @@ public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {
|
| */
|
| private boolean shouldPlaceSeparator(View view, RecyclerView parent) {
|
| int childPos = parent.getChildAdapterPosition(view);
|
| - Adapter adapter = parent.getAdapter();
|
| + Adapter<?> adapter = parent.getAdapter();
|
|
|
| - if (childPos == adapter.getItemCount() - 1) return false;
|
| + // childPos can be NO_POSITION if the method is called with a view being removed from the
|
| + // RecyclerView, for example when dismissing an item.
|
| + if (childPos == adapter.getItemCount() - 1 || childPos == RecyclerView.NO_POSITION) {
|
| + return false;
|
| + }
|
|
|
| return adapter.getItemViewType(childPos) == NewTabPageListItem.VIEW_TYPE_SNIPPET
|
| && adapter.getItemViewType(childPos + 1) == NewTabPageListItem.VIEW_TYPE_SNIPPET;
|
|
|