| 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/SignInPromo.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java
|
| index 25461ced3f15a9037e3fd6f50616125f61d9a4fe..1ad2c93d905e8c78e7b3ba35a7f4b3f2c966f21a 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/cards/SignInPromo.java
|
| @@ -42,13 +42,24 @@ public class SignInPromo extends OptionalLeaf
|
| @Nullable
|
| private final SigninObserver mObserver;
|
|
|
| - public SignInPromo(NodeParent parent) {
|
| + public SignInPromo(NodeParent parent, NewTabPageManager newTabPageManager) {
|
| super(parent);
|
| mDismissed = ChromePreferenceManager.getInstance(ContextUtils.getApplicationContext())
|
| .getNewTabPageSigninPromoDismissed();
|
|
|
| - final SigninManager signinManager = SigninManager.get(ContextUtils.getApplicationContext());
|
| - mObserver = mDismissed ? null : new SigninObserver(signinManager);
|
| + SigninManager signinManager = SigninManager.get(ContextUtils.getApplicationContext());
|
| + if (mDismissed) {
|
| + mObserver = null;
|
| + } else {
|
| + mObserver = new SigninObserver(signinManager);
|
| + newTabPageManager.addDestructionObserver(mObserver);
|
| + }
|
| + }
|
| +
|
| + @Override
|
| + public void init() {
|
| + super.init();
|
| + SigninManager signinManager = SigninManager.get(ContextUtils.getApplicationContext());
|
| setVisible(signinManager.isSignInAllowed() && !signinManager.isSignedInOnNative());
|
| }
|
|
|
|
|