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 40364ba072b9a2b33d74887057ac8655fbe7a81e..3f3e4e23a59bf3590a787c8d831418b16bbeffe0 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; |
@@ -171,6 +174,22 @@ public class SnippetsBridge implements SuggestionsSource { |
nativeOnMoreButtonClicked(mNativeSnippetsBridge, category, position); |
} |
+ /** |
+ * 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) { |
+ if (newState == ActivityState.RESUMED) { |
+ SnippetsBridge snippetsBridge = |
+ new SnippetsBridge(Profile.getLastUsedProfile()); |
+ snippetsBridge.onActivityResumed(); |
+ } |
+ } |
+ }; |
+ } |
+ |
public static void onSuggestionTargetVisited(int category, long visitTimeMs) { |
nativeOnSuggestionTargetVisited(category, visitTimeMs); |
} |
@@ -200,6 +219,11 @@ public class SnippetsBridge implements SuggestionsSource { |
nativeFetch(mNativeSnippetsBridge, category, displayedSuggestionIds); |
} |
+ private void onActivityResumed() { |
+ assert mNativeSnippetsBridge != 0; |
+ nativeOnActivityResumed(mNativeSnippetsBridge); |
+ } |
+ |
@CalledByNative |
private static List<SnippetArticle> createSuggestionList() { |
return new ArrayList<>(); |
@@ -304,6 +328,7 @@ public class SnippetsBridge implements SuggestionsSource { |
long nativeNTPSnippetsBridge, int category, int position); |
private native void nativeOnMoreButtonClicked( |
long nativeNTPSnippetsBridge, int category, int position); |
+ private native void nativeOnActivityResumed(long nativeNTPSnippetsBridge); |
private static native void nativeOnSuggestionTargetVisited(int category, long visitTimeMs); |
private native void nativeSetObserver(long nativeNTPSnippetsBridge, SnippetsBridge bridge); |
} |