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

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

Issue 2397573009: 📰 [Reland] Spacing and fixes for the sign in promo (Closed)
Patch Set: rebase 😠 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
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerView.java ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SigninPromoItem.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SigninPromoItem.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SigninPromoItem.java
index 8028f288747bc9effc8dc04ec1fe8fbf53224378..cdb994e0012f84266d205e731d2a1c98f75477b7 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SigninPromoItem.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SigninPromoItem.java
@@ -6,6 +6,7 @@
import android.content.Context;
import android.support.annotation.DrawableRes;
+import android.support.v7.widget.RecyclerView;
import org.chromium.base.ContextUtils;
import org.chromium.base.metrics.RecordUserAction;
@@ -53,9 +54,7 @@ public SigninPromoItem() {
@Override
public List<NewTabPageItem> getItems() {
- if (mDismissed) return Collections.emptyList();
- if (!mVisible) return Collections.emptyList();
- return mItems;
+ return isShown() ? mItems : Collections.<NewTabPageItem>emptyList();
}
@Override
@@ -74,6 +73,10 @@ public void setObserver(Observer changeObserver) {
this.mChangeObserver = changeObserver;
}
+ public boolean isShown() {
+ return !mDismissed && mVisible;
+ }
+
/** Attempts to show the sign in promo. If the user dismissed it before, it will not be shown.*/
public void maybeShow() {
if (mVisible) return;
@@ -107,8 +110,12 @@ public void dismiss() {
* View Holder for {@link SigninPromoItem}.
*/
public static class ViewHolder extends StatusCardViewHolder {
+ private final int mSeparationSpaceSize;
+
public ViewHolder(NewTabPageRecyclerView parent, UiConfig config) {
super(parent, config);
+ mSeparationSpaceSize = parent.getResources().getDimensionPixelSize(
+ R.dimen.ntp_sign_in_promo_margin_top);
}
@DrawableRes
@@ -118,5 +125,24 @@ protected int selectBackground(boolean hasCardAbove, boolean hasCardBelow) {
if (hasCardAbove) return R.drawable.ntp_signin_promo_card_bottom;
return R.drawable.ntp_signin_promo_card_single;
}
+
+ @Override
+ public void updateLayoutParams() {
+ super.updateLayoutParams();
+
+ if (getAdapterPosition() == RecyclerView.NO_POSITION) return;
+
+ @NewTabPageItem.ViewType
+ int precedingCardType =
+ getRecyclerView().getAdapter().getItemViewType(getAdapterPosition() - 1);
+
+ // The sign in promo should stick to the articles of the preceding section, but have
+ // some space otherwise.
+ if (precedingCardType != NewTabPageItem.VIEW_TYPE_SNIPPET) {
+ getParams().topMargin = mSeparationSpaceSize;
+ } else {
+ getParams().topMargin = 0;
+ }
+ }
}
}
« no previous file with comments | « chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/NewTabPageRecyclerView.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698