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

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

Issue 2120283003: NTP, modify the snippet header display to above the peeking card (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Changes Created 4 years, 5 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 2ef4889879f95248354d99dc97177b7201aa4420..9725c89cdddc641bfa5881ef312d279ec95e5125 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
@@ -220,15 +220,13 @@ public class NewTabPageRecyclerView extends RecyclerView {
/**
* Show the snippets header when the user scrolls down and snippet articles starts reaching the
* top of the screen.
- * @param omniBoxHeight The height of the omnibox displayed over the NTP, we use this to offset
- * the start point of the transition.
*/
- public void updateSnippetsHeaderDisplay(int omniBoxHeight) {
+ public void updateSnippetsHeaderDisplay() {
SnippetHeaderViewHolder header = findHeaderView();
if (header == null) return;
// Start doing the calculations if the snippet header is currently shown on screen.
- header.onScrolled(omniBoxHeight);
+ header.updateDisplay();
// Update the space at the bottom, which needs to know about the height of the header.
refreshBottomSpacing();
@@ -236,7 +234,7 @@ public class NewTabPageRecyclerView extends RecyclerView {
/**
* Finds the header view.
- * @return The viewholder of the header or null, if it is not present.
+ * @return The ViewHolder of the header or null, if it is not present.
*/
private SnippetHeaderViewHolder findHeaderView() {
// Get the snippet header view. It is always at position 1
@@ -302,23 +300,30 @@ public class NewTabPageRecyclerView extends RecyclerView {
// and to allow the peeking card to peek a bit before snapping back.
if (findFirstCard() != null && isFirstItemVisible()) {
View peekingCard = findFirstCard().itemView;
+ View headerView = findHeaderView().itemView;
final int peekingHeight = getResources().getDimensionPixelSize(
R.dimen.snippets_padding_and_peeking_card_height);
- // |A + B| gives the offset of the peeking card relative to the Recycler View,
+ // |A + B - C| gives the offset of the peeking card relative to the Recycler View,
// so scrolling to this point would put the peeking card at the top of the
- // screen.
- // |A + B - C| will scroll us so that the peeking card is just off the bottom
+ // screen. Remove the |headerView| height which gets dynamically increased with
+ // scrolling.
+ // |A + B - C - D| will scroll us so that the peeking card is just off the bottom
// of the screen.
- // Finally, we get |A + B - C + D| because the transition starts from the
- // peeking card's resting point, which is |D| from the bottom of the screen.
+ // Finally, we get |A + B - C - D + E| because the transition starts from the
+ // peeking card's resting point, which is |E| from the bottom of the screen.
int start = peekingCard.getTop() // A.
- + parentScrollY // B.
- - parentHeight // C.
- + peekingHeight; // D.
+ + parentScrollY // B.
+ - headerView.getHeight() // C.
+ - parentHeight // D.
+ + peekingHeight; // E.
+
+ // The height of the region in which the the peeking card will snap.
+ int snapScrollHeight = (peekingCard.getHeight() / 2) + headerView.getHeight();
+
scrollOutOfRegion(start,
- start + peekingCard.getHeight() / 2,
- start + peekingCard.getHeight() / 2);
+ start + snapScrollHeight,
+ start + snapScrollHeight);
}
}
}

Powered by Google App Engine
This is Rietveld 408576698