Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(74)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java

Issue 2599743002: Trigger the Snippets Scheduler when Resuming Activities (Closed)
Patch Set: Two separate signals instead of boolean value. Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java
index 4625b133e6d759f246aafcec3dd53b68e7adb4b4..1a92b267e4eab761c7ffb263682edf51e14f1979 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/snippets/SnippetsBridge.java
@@ -4,8 +4,11 @@
package org.chromium.chrome.browser.ntp.snippets;
+import android.app.Activity;
import android.graphics.Bitmap;
+import org.chromium.base.ActivityState;
+import org.chromium.base.ApplicationStatus;
import org.chromium.base.Callback;
import org.chromium.base.annotations.CalledByNative;
import org.chromium.chrome.browser.ntp.cards.SuggestionsCategoryInfo;
@@ -179,6 +182,28 @@ public class SnippetsBridge implements SuggestionsSource {
nativeOnNTPInitialized(mNativeSnippetsBridge);
}
+ /**
+ * Returns a listener creating a bridge to propagate the activity state changes.
+ */
+ public static ApplicationStatus.ActivityStateListener makeActivityStateListener() {
+ return new ApplicationStatus.ActivityStateListener() {
+ @Override
+ public void onActivityStateChange(Activity activity, int newState) {
+ // This event is only triggered when the start was already warm.
Michael van Ouwerkerk 2017/01/04 14:32:17 Are you sure resume only happens for warm starts?
fhorschig 2017/01/04 15:04:44 I was really surprised to notice this. This might
+ if (newState == ActivityState.RESUMED) {
+ SnippetsBridge snippetsBridge =
+ new SnippetsBridge(Profile.getLastUsedProfile());
+ snippetsBridge.onWarmStartedActivityResumed();
+ }
+ }
+ };
+ }
+
+ public static void notifySchedulerAboutColdStart() {
+ SnippetsBridge snippetsBridge = new SnippetsBridge(Profile.getLastUsedProfile());
+ snippetsBridge.onColdStart();
+ }
+
public static void onSuggestionTargetVisited(int category, long visitTimeMs) {
nativeOnSuggestionTargetVisited(category, visitTimeMs);
}
@@ -208,6 +233,16 @@ public class SnippetsBridge implements SuggestionsSource {
nativeFetch(mNativeSnippetsBridge, category, displayedSuggestionIds);
}
+ private void onWarmStartedActivityResumed() {
+ assert mNativeSnippetsBridge != 0;
+ nativeOnWarmStartedActivityResumed(mNativeSnippetsBridge);
+ }
+
+ private void onColdStart() {
+ assert mNativeSnippetsBridge != 0;
+ nativeOnColdStart(mNativeSnippetsBridge);
+ }
+
@CalledByNative
private static List<SnippetArticle> createSuggestionList() {
return new ArrayList<>();
@@ -312,6 +347,8 @@ public class SnippetsBridge implements SuggestionsSource {
long nativeNTPSnippetsBridge, int category, int position);
private native void nativeOnMoreButtonClicked(
long nativeNTPSnippetsBridge, int category, int position);
+ private native void nativeOnWarmStartedActivityResumed(long nativeNTPSnippetsBridge);
+ private native void nativeOnColdStart(long nativeNTPSnippetsBridge);
private static native void nativeOnSuggestionTargetVisited(int category, long visitTimeMs);
private static native void nativeOnNTPInitialized(long nativeNTPSnippetsBridge);
private native void nativeSetObserver(long nativeNTPSnippetsBridge, SnippetsBridge bridge);

Powered by Google App Engine
This is Rietveld 408576698