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()); |
} |