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