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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetHeaderViewHolder.java

Issue 2144413003: NTP, peeking card and heading hiding constraints (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/snippets/SnippetHeaderViewHolder.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetHeaderViewHolder.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetHeaderViewHolder.java
index 28ec164bb7f56cc8b4abbc45f595964659421568..a9d0f3263db8f207cdf6ccad99c51763b1f6a0cd 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetHeaderViewHolder.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetHeaderViewHolder.java
@@ -50,6 +50,18 @@ public class SnippetHeaderViewHolder extends NewTabPageViewHolder {
}
/**
+ * Only allow the header to transition if the user has not scrolled on the page beyond the
+ * |mMaxPeekPadding + mMaxSnippetHeaderHeight|. There will only ever be one peeking card on the
+ * page and only when there is enough space to show the peeking card on the first screen at the
+ * bottom.
+ * @return
Michael van Ouwerkerk 2016/07/15 15:05:28 Also same as for the other one: either document @r
mcwilliams 2016/07/18 15:11:45 Done.
+ */
+ private boolean allowHeaderToTransition() {
Michael van Ouwerkerk 2016/07/15 15:05:28 Same as for the other method, I think "isHeaderAll
PEConn 2016/07/15 15:08:23 (again, maybe isHeaderTransitionAllowed instead)
mcwilliams 2016/07/18 15:11:45 Done.
+ return mRecyclerView.computeVerticalScrollOffset()
+ <= mMaxSnippetHeaderHeight + mMaxPeekPadding;
+ }
+
+ /**
* Update the view for the fade in/out and heading height.
*/
public void updateDisplay() {
@@ -58,11 +70,15 @@ public class SnippetHeaderViewHolder extends NewTabPageViewHolder {
int snippetHeaderTop = itemView.getTop();
int recyclerViewHeight = mRecyclerView.getHeight();
- // Check if snippet header top is within range to start showing. Set the header height, this
- // is a percentage of how much is scrolled. The balance of the scroll will
- // be used to display the peeking card.
- int amountScrolled = (recyclerViewHeight - mMaxPeekPadding) - snippetHeaderTop;
- if (mHeader.isVisible()) {
+ if (!mHeader.isVisible()) {
+ headerHeight = 0;
+ } else if (!allowHeaderToTransition()) {
+ headerHeight = mMaxSnippetHeaderHeight;
+ } else {
+ // Check if snippet header top is within range to start showing. Set the header height,
+ // this is a percentage of how much is scrolled. The balance of the scroll will be used
+ // to display the peeking card.
+ int amountScrolled = (recyclerViewHeight - mMaxPeekPadding) - snippetHeaderTop;
headerHeight = MathUtils.clamp((int) (amountScrolled * SCROLL_HEADER_HEIGHT_PERCENTAGE),
0, mMaxSnippetHeaderHeight);
}

Powered by Google App Engine
This is Rietveld 408576698