Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java |
index 0558282a008b06940c525989c6c0bdeba465392a..9af358449ac4160b8285945afbf4e7187675f9fd 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java |
@@ -69,7 +69,7 @@ |
private class ItemTouchCallbacks extends ItemTouchHelper.Callback { |
@Override |
public void onSwiped(ViewHolder viewHolder, int direction) { |
- mRecyclerView.onItemDismissStarted(viewHolder); |
+ mRecyclerView.onItemDismissStarted(viewHolder.itemView); |
NewTabPageAdapter.this.dismissItem(viewHolder.getAdapterPosition()); |
} |
@@ -79,7 +79,7 @@ |
// not mean that the user went all the way and dismissed the item before releasing it. |
// We need to check that the item has been removed. |
if (viewHolder.getAdapterPosition() == RecyclerView.NO_POSITION) { |
- mRecyclerView.onItemDismissFinished(viewHolder); |
+ mRecyclerView.onItemDismissFinished(viewHolder.itemView); |
} |
super.clearView(recyclerView, viewHolder); |
@@ -364,10 +364,10 @@ |
} |
public int getFirstCardPosition() { |
- for (int i = 0; i < getItemCount(); ++i) { |
- if (CardViewHolder.isCard(getItemViewType(i))) return i; |
- } |
- return RecyclerView.NO_POSITION; |
+ // TODO(mvanouwerkerk): Don't rely on getFirstHeaderPosition() here. |
+ int firstHeaderPosition = getFirstHeaderPosition(); |
+ if (firstHeaderPosition == RecyclerView.NO_POSITION) return RecyclerView.NO_POSITION; |
+ return firstHeaderPosition + 1; |
} |
public int getLastContentItemPosition() { |
@@ -414,7 +414,7 @@ |
// TODO(treib,bauerb): Preserve the order of categories we got from getCategories. |
mGroups.addAll(mSections.values()); |
mGroups.add(mSigninPromo); |
- if (hasVisibleBelowTheFoldItems()) { |
+ if (!mSections.isEmpty()) { |
mGroups.add(mFooter); |
mGroups.add(mBottomSpacer); |
} |
@@ -430,7 +430,7 @@ |
notifyItemRangeRemoved(startPos, removedItems); |
- if (!hasVisibleBelowTheFoldItems()) { |
+ if (mSections.isEmpty()) { |
mGroups.remove(mFooter); |
mGroups.remove(mBottomSpacer); |
notifyItemRangeRemoved(startPos + removedItems, 2); |
@@ -556,13 +556,6 @@ |
private void dismissPromo() { |
// TODO(dgn): accessibility announcement. |
mSigninPromo.dismiss(); |
- |
- if (!hasVisibleBelowTheFoldItems()) { |
- int footerPosition = getLastContentItemPosition(); |
- mGroups.remove(mFooter); |
- mGroups.remove(mBottomSpacer); |
- notifyItemRangeRemoved(footerPosition, 2); |
- } |
} |
/** |
@@ -577,9 +570,9 @@ |
} |
/** |
- * Returns another view holder that should be dismissed at the same time as the provided one. |
+ * Returns another view holder that should be dismissed as the same time as the provided one. |
*/ |
- public ViewHolder getDismissSibling(ViewHolder viewHolder) { |
+ private ViewHolder getDismissSibling(ViewHolder viewHolder) { |
int swipePos = viewHolder.getAdapterPosition(); |
ItemGroup group = getGroup(swipePos); |
@@ -590,10 +583,6 @@ |
if (siblingPosDelta == 0) return null; |
return mRecyclerView.findViewHolderForAdapterPosition(siblingPosDelta + swipePos); |
- } |
- |
- private boolean hasVisibleBelowTheFoldItems() { |
- return !mSections.isEmpty() || mSigninPromo.isShown(); |
} |
@VisibleForTesting |