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..dde581a9a70d0952d7ba9b1e7a586ee776406f8d 100644 |
| --- a/chrome/browser/android/ntp/ntp_snippets_bridge.cc |
| +++ b/chrome/browser/android/ntp/ntp_snippets_bridge.cc |
| @@ -10,15 +10,18 @@ |
| #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" |
| using base::android::ConvertJavaStringToUTF8; |
| +using base::android::ConvertUTF8ToJavaString; |
|
Bernhard Bauer
2016/04/21 16:19:27
This doesn't seem to be necessary.
PEConn
2016/04/21 16:35:40
Done.
|
| using base::android::JavaParamRef; |
| using base::android::ToJavaArrayOfStrings; |
| using base::android::ToJavaLongArray; |
| @@ -49,6 +52,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 +78,31 @@ void NTPSnippetsBridge::DiscardSnippet(JNIEnv* env, |
| GURL(ConvertJavaStringToUTF8(env, url))); |
| } |
| +void SnippetVisitedHistoryRequestCallback( |
|
Bernhard Bauer
2016/04/21 16:19:27
Move this into an anonymous namespace?
PEConn
2016/04/21 16:35:40
Done.
|
| + 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)); |
| +} |
| + |
| +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; |