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

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

Issue 2623993007: 🏠 Extract the ContentSuggestionManager interface from NTP (Closed)
Patch Set: aaaand rebase again Created 3 years, 11 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 unified diff | Download patch
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.chrome.browser.ntp.cards; 5 package org.chromium.chrome.browser.ntp.cards;
6 6
7 import android.content.Context; 7 import android.content.Context;
8 import android.support.annotation.DrawableRes; 8 import android.support.annotation.DrawableRes;
9 import android.support.annotation.Nullable; 9 import android.support.annotation.Nullable;
10 import android.support.annotation.StringRes; 10 import android.support.annotation.StringRes;
11 11
12 import org.chromium.base.Callback; 12 import org.chromium.base.Callback;
13 import org.chromium.base.ContextUtils; 13 import org.chromium.base.ContextUtils;
14 import org.chromium.base.VisibleForTesting; 14 import org.chromium.base.VisibleForTesting;
15 import org.chromium.base.metrics.RecordUserAction; 15 import org.chromium.base.metrics.RecordUserAction;
16 import org.chromium.chrome.R; 16 import org.chromium.chrome.R;
17 import org.chromium.chrome.browser.ntp.ContextMenuManager;
17 import org.chromium.chrome.browser.ntp.NewTabPage.DestructionObserver; 18 import org.chromium.chrome.browser.ntp.NewTabPage.DestructionObserver;
18 import org.chromium.chrome.browser.ntp.NewTabPageView.NewTabPageManager;
19 import org.chromium.chrome.browser.ntp.UiConfig; 19 import org.chromium.chrome.browser.ntp.UiConfig;
20 import org.chromium.chrome.browser.preferences.ChromePreferenceManager; 20 import org.chromium.chrome.browser.preferences.ChromePreferenceManager;
21 import org.chromium.chrome.browser.signin.AccountSigninActivity; 21 import org.chromium.chrome.browser.signin.AccountSigninActivity;
22 import org.chromium.chrome.browser.signin.SigninAccessPoint; 22 import org.chromium.chrome.browser.signin.SigninAccessPoint;
23 import org.chromium.chrome.browser.signin.SigninManager; 23 import org.chromium.chrome.browser.signin.SigninManager;
24 import org.chromium.chrome.browser.signin.SigninManager.SignInAllowedObserver; 24 import org.chromium.chrome.browser.signin.SigninManager.SignInAllowedObserver;
25 import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver; 25 import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver;
26 import org.chromium.chrome.browser.suggestions.SuggestionsUiDelegate;
26 27
27 /** 28 /**
28 * Shows a card prompting the user to sign in. This item is also an {@link Optio nalLeaf}, and sign 29 * Shows a card prompting the user to sign in. This item is also an {@link Optio nalLeaf}, and sign
29 * in state changes control its visibility. 30 * in state changes control its visibility.
30 */ 31 */
31 public class SignInPromo extends OptionalLeaf 32 public class SignInPromo extends OptionalLeaf
32 implements StatusCardViewHolder.DataSource, ImpressionTracker.Listener { 33 implements StatusCardViewHolder.DataSource, ImpressionTracker.Listener {
33 34
34 /** 35 /**
35 * Whether the user has seen the promo and dismissed it at some point. When this is set, 36 * Whether the user has seen the promo and dismissed it at some point. When this is set,
36 * the promo will never be shown. 37 * the promo will never be shown.
37 */ 38 */
38 private boolean mDismissed; 39 private boolean mDismissed;
39 40
40 private final ImpressionTracker mImpressionTracker = new ImpressionTracker(n ull, this); 41 private final ImpressionTracker mImpressionTracker = new ImpressionTracker(n ull, this);
41 42
42 @Nullable 43 @Nullable
43 private final SigninObserver mObserver; 44 private final SigninObserver mObserver;
44 45
45 public SignInPromo(NewTabPageManager newTabPageManager) { 46 public SignInPromo(SuggestionsUiDelegate uiDelegate) {
46 mDismissed = ChromePreferenceManager.getInstance(ContextUtils.getApplica tionContext()) 47 mDismissed = ChromePreferenceManager.getInstance(ContextUtils.getApplica tionContext())
47 .getNewTabPageSigninPromoDismissed(); 48 .getNewTabPageSigninPromoDismissed();
48 49
49 SigninManager signinManager = SigninManager.get(ContextUtils.getApplicat ionContext()); 50 SigninManager signinManager = SigninManager.get(ContextUtils.getApplicat ionContext());
50 if (mDismissed) { 51 if (mDismissed) {
51 mObserver = null; 52 mObserver = null;
52 } else { 53 } else {
53 mObserver = new SigninObserver(signinManager); 54 mObserver = new SigninObserver(signinManager);
54 newTabPageManager.addDestructionObserver(mObserver); 55 uiDelegate.addDestructionObserver(mObserver);
55 } 56 }
56 57
57 setVisible(signinManager.isSignInAllowed() && !signinManager.isSignedInO nNative()); 58 setVisible(signinManager.isSignInAllowed() && !signinManager.isSignedInO nNative());
58 } 59 }
59 60
60 @Override 61 @Override
61 @ItemViewType 62 @ItemViewType
62 public int getItemViewType() { 63 public int getItemViewType() {
63 return ItemViewType.PROMO; 64 return ItemViewType.PROMO;
64 } 65 }
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 @Override 169 @Override
169 public void onSignedOut() { 170 public void onSignedOut() {
170 setVisible(true); 171 setVisible(true);
171 } 172 }
172 } 173 }
173 174
174 /** 175 /**
175 * View Holder for {@link SignInPromo}. 176 * View Holder for {@link SignInPromo}.
176 */ 177 */
177 public static class ViewHolder extends StatusCardViewHolder { 178 public static class ViewHolder extends StatusCardViewHolder {
178 179 public ViewHolder(NewTabPageRecyclerView parent, ContextMenuManager cont extMenuManager,
179 public ViewHolder(NewTabPageRecyclerView parent, NewTabPageManager newTa bPageManager,
180 UiConfig config) { 180 UiConfig config) {
181 super(parent, newTabPageManager, config); 181 super(parent, contextMenuManager, config);
182 getParams().topMargin = parent.getResources().getDimensionPixelSize( 182 getParams().topMargin = parent.getResources().getDimensionPixelSize(
183 R.dimen.ntp_sign_in_promo_margin_top); 183 R.dimen.ntp_sign_in_promo_margin_top);
184 } 184 }
185 185
186 @DrawableRes 186 @DrawableRes
187 @Override 187 @Override
188 protected int selectBackground(boolean hasCardAbove, boolean hasCardBelo w) { 188 protected int selectBackground(boolean hasCardAbove, boolean hasCardBelo w) {
189 return R.drawable.ntp_signin_promo_card_single; 189 return R.drawable.ntp_signin_promo_card_single;
190 } 190 }
191 191
192 @Override 192 @Override
193 public boolean isDismissable() { 193 public boolean isDismissable() {
194 return true; 194 return true;
195 } 195 }
196 } 196 }
197 } 197 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698