Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java |
| index 4701a6b175ccf433e3dcb8a43514f6115a880012..de049177a631684af32ac4a7820d7c3c1a9727d1 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeTabbedActivity.java |
| @@ -80,6 +80,8 @@ import org.chromium.chrome.browser.metrics.UmaUtils; |
| import org.chromium.chrome.browser.multiwindow.MultiWindowUtils; |
| import org.chromium.chrome.browser.ntp.NativePageAssassin; |
| import org.chromium.chrome.browser.ntp.NewTabPageUma; |
| +import org.chromium.chrome.browser.ntp.snippets.SnippetsBridge; |
| +import org.chromium.chrome.browser.ntp.snippets.SnippetsConfig; |
| import org.chromium.chrome.browser.omaha.OmahaClient; |
| import org.chromium.chrome.browser.omnibox.AutocompleteController; |
| import org.chromium.chrome.browser.partnercustomizations.HomepageManager; |
| @@ -229,6 +231,8 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode |
| private VrShellDelegate mVrShellDelegate; |
| + private ApplicationStatus.ActivityStateListener mSnippetsSchedulerListener; |
| + |
| private class TabbedAssistStatusHandler extends AssistStatusHandler { |
| public TabbedAssistStatusHandler(Activity activity) { |
| super(activity); |
| @@ -404,6 +408,14 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode |
| mLocaleManager = LocaleManager.getInstance(); |
| mLocaleManager.showSearchEnginePromoIfNeeded(this); |
| + if (SnippetsConfig.isEnabled()) { |
| + // The SnippetsBridge propagates the state changes so the scheduler can post |
| + // deferred tasks to refresh outdated snippets. |
| + mSnippetsSchedulerListener = SnippetsBridge.makeActivityStateListener(); |
| + ApplicationStatus.registerStateListenerForActivity( |
| + mSnippetsSchedulerListener, this); |
| + } |
| + |
| super.finishNativeInitialization(); |
| } finally { |
| TraceEvent.end("ChromeTabbedActivity.finishNativeInitialization"); |
| @@ -430,6 +442,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode |
| mLocaleManager.setSnackbarManager(getSnackbarManager()); |
| mLocaleManager.startObservingPhoneChanges(); |
| + |
| + // Without any interaction, this start was cold and the listener will ignore it. |
|
Michael van Ouwerkerk
2017/01/04 14:32:17
Without user interaction, it is the start of the a
fhorschig
2017/01/04 15:04:44
Good lead, added a check and a warm alternative ca
|
| + if (SnippetsConfig.isEnabled() && getLastUserInteractionTime() == 0) { |
| + SnippetsBridge.notifySchedulerAboutColdStart(); |
| + } |
| } |
| @Override |
| @@ -1444,6 +1461,11 @@ public class ChromeTabbedActivity extends ChromeActivity implements OverviewMode |
| mVrShellDelegate.destroyVrShell(); |
| } |
| + if (mSnippetsSchedulerListener != null) { |
| + ApplicationStatus.unregisterActivityStateListener(mSnippetsSchedulerListener); |
| + mSnippetsSchedulerListener = null; |
| + } |
| + |
| super.onDestroyInternal(); |
| } |