| Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
|
| index cf1b3deab9ed86a94638bb9d668add9820de97ea..a6a0b8f2d30f370df371f3e853c79e6e67d1501e 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPage.java
|
| @@ -60,8 +60,6 @@
|
| import org.chromium.chrome.browser.profiles.Profile;
|
| import org.chromium.chrome.browser.search_engines.TemplateUrlService;
|
| import org.chromium.chrome.browser.search_engines.TemplateUrlService.TemplateUrlServiceObserver;
|
| -import org.chromium.chrome.browser.signin.SigninManager;
|
| -import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver;
|
| import org.chromium.chrome.browser.snackbar.Snackbar;
|
| import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController;
|
| import org.chromium.chrome.browser.sync.SyncSessionsMetrics;
|
| @@ -153,8 +151,7 @@
|
| // Whether destroy() has been called.
|
| private boolean mIsDestroyed;
|
|
|
| - /** Used by {@link #mNewTabPageManager}. Observer tracked for de-registration purposes. */
|
| - private SignInStateObserver mSignInStateObserver;
|
| + private DestructionObserver mDestructionObserver;
|
|
|
| /**
|
| * Allows clients to listen for updates to the scroll changes of the search box on the
|
| @@ -173,6 +170,13 @@
|
| }
|
|
|
| /**
|
| + * Object that registered through the {@link NewTabPageManager}, and that will be notified when
|
| + * the {@link NewTabPage} is destroyed.
|
| + * @see NewTabPageManager#setDestructionObserver(DestructionObserver)
|
| + */
|
| + public interface DestructionObserver { void onDestroy(); }
|
| +
|
| + /**
|
| * Handles user interaction with the fakebox (the URL bar in the NTP).
|
| */
|
| public interface FakeboxDelegate {
|
| @@ -661,11 +665,10 @@ public SuggestionsSource getSuggestionsSource() {
|
| }
|
|
|
| @Override
|
| - public void registerSignInStateObserver(SignInStateObserver signInStateObserver) {
|
| + public void setDestructionObserver(DestructionObserver destructionObserver) {
|
| if (mIsDestroyed) return;
|
| - assert mSignInStateObserver == null;
|
| - mSignInStateObserver = signInStateObserver;
|
| - SigninManager.get(mActivity).addSignInStateObserver(mSignInStateObserver);
|
| + assert mDestructionObserver == null;
|
| + mDestructionObserver = destructionObserver;
|
| }
|
|
|
| @Override
|
| @@ -972,8 +975,8 @@ public void destroy() {
|
| if (mMostVisitedItemRemovedController != null) {
|
| mTab.getSnackbarManager().dismissSnackbars(mMostVisitedItemRemovedController);
|
| }
|
| - if (mSignInStateObserver != null) {
|
| - SigninManager.get(mActivity).removeSignInStateObserver(mSignInStateObserver);
|
| + if (mDestructionObserver != null) {
|
| + mDestructionObserver.onDestroy();
|
| }
|
| TemplateUrlService.getInstance().removeObserver(this);
|
| mTab.removeObserver(mTabObserver);
|
|
|