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

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

Issue 2191593002: 📰 Add a spinner to indicate content is loading (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix unit tests, add an extra one Created 4 years, 4 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/NewTabPageRecyclerView.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerView.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerView.java
index 7af36d786704d5708bfff4cb969a7de4a137a78a..ca9042f177a84b3ac00fac7eeb44ae3609a0cfc5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerView.java
@@ -151,11 +151,11 @@ int calculateBottomSpacing() {
return mMinBottomSpacing;
}
- ViewHolder lastCard = findLastCard();
+ ViewHolder lastContentItem = findLastContentItem();
ViewHolder firstHeader = findHeader();
int bottomSpacing = getHeight() - mToolbarHeight;
- if (lastCard == null || firstHeader == null) {
+ if (lastContentItem == null || firstHeader == null) {
// This can happen in several cases, where some elements are not visible and the
// RecyclerView didn't already attach them. We handle it by just adding space to make
// sure that we never run out and force the UI to jump around and get stuck in a
@@ -170,9 +170,10 @@ int calculateBottomSpacing() {
Log.w(TAG, "The RecyclerView items are not attached, can't determine the content "
+ "height: snap=%s, last=%s. Using full height: %d ",
- firstHeader, lastCard, bottomSpacing);
+ firstHeader, lastContentItem, bottomSpacing);
} else {
- int contentHeight = lastCard.itemView.getBottom() - firstHeader.itemView.getTop();
+ int contentHeight =
+ lastContentItem.itemView.getBottom() - firstHeader.itemView.getTop();
bottomSpacing -= contentHeight - mCompensationHeight;
}
@@ -239,15 +240,16 @@ private CardViewHolder findFirstCard() {
}
/**
- * Finds the view holder for the last card.
- * @return The {@link ViewHolder} of the last card, or null if it is not present.
+ * Finds the view holder for the last content item: a card or status indicator.
+ * @return The {@link ViewHolder} of the last content item, or null if it is not present.
*/
- private CardViewHolder findLastCard() {
+ private ViewHolder findLastContentItem() {
ViewHolder viewHolder =
findViewHolderForAdapterPosition(getNewTabPageAdapter().getLastCardPosition());
- if (!(viewHolder instanceof CardViewHolder)) return null;
+ if (viewHolder instanceof CardViewHolder) return viewHolder;
+ if (viewHolder instanceof ProgressViewHolder) return viewHolder;
- return (CardViewHolder) viewHolder;
+ return null;
}
/**

Powered by Google App Engine
This is Rietveld 408576698