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

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

Issue 2407283002: Extract a DataSource interface for items shown in a status card. (Closed)
Patch Set: blergh 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/SignInPromo.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/SignInPromo.java
similarity index 81%
rename from chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SigninPromoItem.java
rename to chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java
index 7003be835c4bf393243af3e4fad9e10337591ffd..a767a7bb12fd6a8443dfaac2815d695b700eac62 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/SignInPromo.java
@@ -6,6 +6,7 @@ package org.chromium.chrome.browser.ntp.cards;
import android.content.Context;
import android.support.annotation.DrawableRes;
+import android.support.annotation.StringRes;
import android.support.v7.widget.RecyclerView;
import org.chromium.base.ContextUtils;
@@ -24,8 +25,9 @@ import java.util.List;
* Shows a card prompting the user to sign in. This item is also an {@link ItemGroup}, and calling
* {@link #hide()} or {@link #maybeShow()} will control its visibility.
*/
-public class SigninPromoItem extends StatusItem implements ItemGroup {
- private final List<NewTabPageItem> mItems = Collections.<NewTabPageItem>singletonList(this);
+public class SignInPromo implements ItemGroup, StatusCardViewHolder.DataSource {
+ private final NewTabPageItem mItem = new Item();
+ private final List<NewTabPageItem> mItems = Collections.<NewTabPageItem>singletonList(mItem);
private Observer mChangeObserver;
/**
@@ -42,10 +44,7 @@ public class SigninPromoItem extends StatusItem implements ItemGroup {
*/
private boolean mDismissed;
- public SigninPromoItem() {
- super(org.chromium.chrome.R.string.snippets_disabled_generic_prompt,
- org.chromium.chrome.R.string.snippets_disabled_signed_out_instructions,
- org.chromium.chrome.R.string.sign_in_button);
+ public SignInPromo() {
mDismissed = ChromePreferenceManager.getInstance(ContextUtils.getApplicationContext())
.getNewTabPageSigninPromoDismissed();
mVisible = !SigninManager.get(ContextUtils.getApplicationContext()).isSignedInOnNative();
@@ -56,13 +55,21 @@ public class SigninPromoItem extends StatusItem implements ItemGroup {
return isShown() ? mItems : Collections.<NewTabPageItem>emptyList();
}
- @Override
- public int getType() {
- return NewTabPageItem.VIEW_TYPE_PROMO;
+ private class Item implements NewTabPageItem {
+ @Override
+ public int getType() {
+ return NewTabPageItem.VIEW_TYPE_PROMO;
+ }
+
+ @Override
+ public void onBindViewHolder(NewTabPageViewHolder holder) {
+ assert holder instanceof ViewHolder;
+ ((ViewHolder) holder).onBindViewHolder(SignInPromo.this);
+ }
}
@Override
- protected void performAction(Context context) {
+ public void performAction(Context context) {
AccountSigninActivity.startIfAllowed(context, SigninAccessPoint.NTP_CONTENT_SUGGESTIONS);
}
@@ -72,6 +79,24 @@ public class SigninPromoItem extends StatusItem implements ItemGroup {
this.mChangeObserver = changeObserver;
}
+ @Override
+ @StringRes
+ public int getHeader() {
+ return R.string.snippets_disabled_generic_prompt;
+ }
+
+ @Override
+ @StringRes
+ public int getDescription() {
+ return R.string.snippets_disabled_signed_out_instructions;
+ }
+
+ @Override
+ @StringRes
+ public int getActionLabel() {
+ return R.string.sign_in_button;
+ }
+
public boolean isShown() {
return !mDismissed && mVisible;
}
@@ -106,7 +131,7 @@ public class SigninPromoItem extends StatusItem implements ItemGroup {
}
/**
- * View Holder for {@link SigninPromoItem}.
+ * View Holder for {@link SignInPromo}.
*/
public static class ViewHolder extends StatusCardViewHolder {
private final int mSeparationSpaceSize;

Powered by Google App Engine
This is Rietveld 408576698