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

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

Issue 2400783003: Ntp: show AllDismissedItem when all sections have been dismissed. (Closed)
Patch Set: Address review comments. Created 4 years, 2 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 ba14bf5028325fa77ca6952825abf3d8a6122fdf..b0c46c378111f840052f583fa1543a9d1a58623e 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
@@ -195,11 +195,11 @@ public class NewTabPageRecyclerView extends RecyclerView {
return 0;
}
- ViewHolder lastContentItem = findLastContentItem();
+ ViewHolder spacer = findBottomSpacer();
ViewHolder aboveTheFold = findViewHolderForAdapterPosition(aboveTheFoldPosition);
int bottomSpacing = getHeight() - mToolbarHeight;
- if (lastContentItem == null || aboveTheFold == null) {
+ if (spacer == null || aboveTheFold == 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
@@ -207,17 +207,16 @@ public class NewTabPageRecyclerView extends RecyclerView {
// next pass. Known cases that make it necessary:
// - The card list is refreshed while the NTP is not shown, for example when changing
// the sync settings.
- // - Dismissing a snippet and having the status card coming to take its place.
+ // - Dismissing a suggestion and having the status card coming to take its place.
// - Refresh while being below the fold, for example by tapping the status card.
if (aboveTheFold != null) bottomSpacing -= aboveTheFold.itemView.getBottom();
Log.w(TAG, "The RecyclerView items are not attached, can't determine the content "
- + "height: snap=%s, last=%s. Using full height: %d ",
- aboveTheFold, lastContentItem, bottomSpacing);
+ + "height: snap=%s, spacer=%s. Using full height: %d ",
+ aboveTheFold, spacer, bottomSpacing);
} else {
- int contentHeight =
- lastContentItem.itemView.getBottom() - aboveTheFold.itemView.getBottom();
+ int contentHeight = spacer.itemView.getTop() - aboveTheFold.itemView.getBottom();
bottomSpacing -= contentHeight - mCompensationHeight;
}
@@ -314,20 +313,6 @@ public class NewTabPageRecyclerView extends RecyclerView {
}
/**
- * Finds the view holder for the last content item: the footer.
- * @return The {@code ViewHolder} of the last content item, or null if it is not present.
- */
- private ViewHolder findLastContentItem() {
- int position = getNewTabPageAdapter().getLastContentItemPosition();
- if (position == RecyclerView.NO_POSITION) return null;
-
- ViewHolder viewHolder = findViewHolderForAdapterPosition(position);
- if (viewHolder instanceof Footer.ViewHolder) return viewHolder;
-
- return null;
- }
-
- /**
* Finds the view holder for the bottom spacer.
* @return The {@code ViewHolder} of the bottom spacer, or null if it is not present.
*/
@@ -340,7 +325,7 @@ public class NewTabPageRecyclerView extends RecyclerView {
/**
* Finds the above the fold view.
- * @return The View for above the fold or null, if it is not present.
+ * @return The view for above the fold or null, if it is not present.
*/
public NewTabPageLayout findAboveTheFoldView() {
int position = getNewTabPageAdapter().getAboveTheFoldPosition();

Powered by Google App Engine
This is Rietveld 408576698