Chromium Code Reviews| Index: chrome/browser/android/ntp/ntp_snippets_bridge.cc |
| diff --git a/chrome/browser/android/ntp/ntp_snippets_bridge.cc b/chrome/browser/android/ntp/ntp_snippets_bridge.cc |
| index ac248694babf4eb940d85207f0aec7f507f867a5..392b73058fa27f39b09883903aa186f7013176bb 100644 |
| --- a/chrome/browser/android/ntp/ntp_snippets_bridge.cc |
| +++ b/chrome/browser/android/ntp/ntp_snippets_bridge.cc |
| @@ -10,10 +10,12 @@ |
| #include "base/android/jni_array.h" |
| #include "base/android/jni_string.h" |
| #include "base/android/scoped_java_ref.h" |
| +#include "chrome/browser/history/history_service_factory.h" |
| #include "chrome/browser/ntp_snippets/ntp_snippets_service_factory.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/profiles/profile_android.h" |
| #include "chrome/browser/profiles/profile_manager.h" |
| +#include "components/history/core/browser/history_service.h" |
| #include "components/ntp_snippets/ntp_snippet.h" |
| #include "components/ntp_snippets/ntp_snippets_service.h" |
| #include "jni/SnippetsBridge_jni.h" |
| @@ -23,6 +25,20 @@ using base::android::JavaParamRef; |
| using base::android::ToJavaArrayOfStrings; |
| using base::android::ToJavaLongArray; |
| +namespace { |
|
Bernhard Bauer
2016/04/22 15:08:57
Add empty lines inside of the namespace.
|
| +void SnippetVisitedHistoryRequestCallback( |
| + base::android::ScopedJavaGlobalRef<jobject> callback, |
| + bool success, |
| + const history::URLRow& row, |
| + const history::VisitVector& visitVector) { |
| + bool visited = success && row.visit_count() != 0; |
| + |
| + JNIEnv* env = base::android::AttachCurrentThread(); |
| + Java_SnippetsBridge_runCallback(env, callback.obj(), |
| + static_cast<jboolean>(visited)); |
| +} |
| +} |
|
Bernhard Bauer
2016/04/22 15:08:57
// namespace
|
| + |
| static jlong Init(JNIEnv* env, |
| const JavaParamRef<jobject>& obj, |
| const JavaParamRef<jobject>& j_profile) { |
| @@ -49,6 +65,9 @@ NTPSnippetsBridge::NTPSnippetsBridge(JNIEnv* env, |
| : snippet_service_observer_(this) { |
| Profile* profile = ProfileAndroid::FromProfileAndroid(j_profile); |
| ntp_snippets_service_ = NTPSnippetsServiceFactory::GetForProfile(profile); |
| + history_service_ = |
| + HistoryServiceFactory::GetForProfile(profile, |
| + ServiceAccessType::EXPLICIT_ACCESS); |
| snippet_service_observer_.Add(ntp_snippets_service_); |
| } |
| @@ -72,6 +91,19 @@ void NTPSnippetsBridge::DiscardSnippet(JNIEnv* env, |
| GURL(ConvertJavaStringToUTF8(env, url))); |
| } |
| +void NTPSnippetsBridge::SnippetVisited(JNIEnv* env, |
| + const JavaParamRef<jobject>& obj, |
| + const JavaParamRef<jobject>& jcallback, |
| + const JavaParamRef<jstring>& jurl) { |
| + base::android::ScopedJavaGlobalRef<jobject> callback(jcallback); |
| + |
| + history_service_->QueryURL( |
| + GURL(ConvertJavaStringToUTF8(env, jurl)), |
| + false, |
| + base::Bind(&SnippetVisitedHistoryRequestCallback, callback), |
| + &tracker_); |
| +} |
| + |
| void NTPSnippetsBridge::NTPSnippetsServiceLoaded() { |
| if (observer_.is_null()) |
| return; |