Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4464)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageAdapter.java

Issue 1928063002: [NTP Snippets] Fill space below the last snippet if necessary (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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() {

Powered by Google App Engine
This is Rietveld 408576698