Chromium Code Reviews| 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 57b908102cd1a135446c2ba46ee14481b70884d9..2e2c76d0d19c599f31e69835e2b10f547c370c0e 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 |
| @@ -41,7 +41,7 @@ |
| private final ItemTouchCallbacks mItemTouchCallbacks; |
| private static final Interpolator FADE_INTERPOLATOR = new FastOutLinearInInterpolator(); |
| - |
| + private NewTabPageViewHolder mPaddingViewHolder; |
| private class ItemTouchCallbacks extends ItemTouchHelper.Callback { |
| @Override |
| public void onSwiped(ViewHolder viewHolder, int direction) { |
| @@ -126,6 +126,7 @@ public void onSnippetsReceived(List<SnippetArticle> listSnippets) { |
| // allocated even though visibility is set to GONE. |
| // mNewTabPageListItems.add(new SnippetHeaderListItem()); |
| mNewTabPageListItems.addAll(listSnippets); |
| + mNewTabPageListItems.add(new PaddingListItem()); |
| notifyDataSetChanged(); |
| @@ -154,6 +155,11 @@ public NewTabPageViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { |
| SnippetArticleViewHolder.createView(parent), mNewTabPageManager); |
| } |
| + if (viewType == NewTabPageListItem.VIEW_TYPE_PADDING) { |
| + mPaddingViewHolder = new NewTabPageViewHolder(PaddingListItem.createView(parent)); |
| + return mPaddingViewHolder; |
| + } |
| + |
| return null; |
| } |
| @@ -173,14 +179,21 @@ private void dismissItem(int position) { |
| mNewTabPageListItems.remove(position); |
| int numRemovedItems = 1; |
| - if (mNewTabPageListItems.size() == 2) { |
| - // There's only the above-the-fold item and the header left, so we remove the header. |
| - position = 1; // When present, the header is always at that position. |
| - mNewTabPageListItems.remove(position); |
| - ++numRemovedItems; |
| - } |
| + // TODO(https://crbug.com/608918): Remove this for now as we need to come up with a better |
|
May
2016/05/10 10:31:51
This doesn't seem to be the right bug number.
Als
dgn
2016/05/10 14:26:12
It should have been commented out at the same time
|
| + // way to visibly not affect the layout of the page when not shown as currently pixels are |
| + // allocated even though visibility is set to GONE. |
| +// if (mNewTabPageListItems.size() == 2) { |
| +// // There's only the above-the-fold item and the header left, so we remove the header. |
| +// position = 1; // When present, the header is always at that position. |
| +// mNewTabPageListItems.remove(position); |
| +// ++numRemovedItems; |
| +// } |
| notifyItemRangeRemoved(position, numRemovedItems); |
| + |
| + if (mPaddingViewHolder != null && mPaddingViewHolder.itemView != null) { |
| + mPaddingViewHolder.itemView.requestLayout(); |
| + } |
| } |
| List<NewTabPageListItem> getItemsForTesting() { |