Chromium Code Reviews| 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..cff73cb5ad143b837741a4e8412a190be5fc0a1d 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; |
| @@ -154,7 +152,7 @@ |
| private boolean mIsDestroyed; |
| /** Used by {@link #mNewTabPageManager}. Observer tracked for de-registration purposes. */ |
| - private SignInStateObserver mSignInStateObserver; |
| + private SelfRegistrable mSelfRegistrable; |
|
Michael van Ouwerkerk
2016/10/19 12:09:18
Maybe rename to mSignInStateObserver or something
dgn
2016/10/19 17:03:41
renamed to mDestructionObserver. The NTP does not
|
| /** |
| * Allows clients to listen for updates to the scroll changes of the search box on the |
| @@ -173,6 +171,16 @@ |
| } |
| /** |
| + * Object that can be registered when received by the {@link NewTabPageManager}, and that will |
| + * be unregistered when the {@link NewTabPage} is destroyed. |
|
Bernhard Bauer
2016/10/19 12:15:27
If this interface is for being notified about the
dgn
2016/10/19 17:03:41
Good point. Done.
|
| + * @see NewTabPageManager#addSelfRegistrable(SelfRegistrable) |
| + */ |
| + public interface SelfRegistrable { |
| + void register(); |
|
Bernhard Bauer
2016/10/19 12:15:27
Does this even need to be part of the interface? I
dgn
2016/10/19 17:03:41
Done.
|
| + void unregister(); |
| + } |
| + |
| + /** |
| * Handles user interaction with the fakebox (the URL bar in the NTP). |
| */ |
| public interface FakeboxDelegate { |
| @@ -661,11 +669,11 @@ public SuggestionsSource getSuggestionsSource() { |
| } |
| @Override |
| - public void registerSignInStateObserver(SignInStateObserver signInStateObserver) { |
| + public void addSelfRegistrable(SelfRegistrable selfRegistrable) { |
| if (mIsDestroyed) return; |
| - assert mSignInStateObserver == null; |
| - mSignInStateObserver = signInStateObserver; |
| - SigninManager.get(mActivity).addSignInStateObserver(mSignInStateObserver); |
| + assert mSelfRegistrable == null; |
| + mSelfRegistrable = selfRegistrable; |
| + selfRegistrable.register(); |
| } |
| @Override |
| @@ -972,8 +980,8 @@ public void destroy() { |
| if (mMostVisitedItemRemovedController != null) { |
| mTab.getSnackbarManager().dismissSnackbars(mMostVisitedItemRemovedController); |
| } |
| - if (mSignInStateObserver != null) { |
| - SigninManager.get(mActivity).removeSignInStateObserver(mSignInStateObserver); |
| + if (mSelfRegistrable != null) { |
| + mSelfRegistrable.unregister(); |
| } |
| TemplateUrlService.getInstance().removeObserver(this); |
| mTab.removeObserver(mTabObserver); |