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

Unified Diff: chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.cc

Issue 693613003: Revert "Revert of Add Search Service in Enhanced Bookmark Bridge (patchset #6 id:100001 of https://… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.cc
diff --git a/chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.cc b/chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.cc
index 3f803e3b7a3aa93ac37302e11b8bdc5eadcc11d6..ed4016aa764a1910a4c61f4883f1da126a30c0bb 100644
--- a/chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.cc
+++ b/chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.cc
@@ -12,6 +12,8 @@
#include "chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_service_factory.h"
#include "chrome/browser/enhanced_bookmarks/enhanced_bookmark_model_factory.h"
#include "chrome/browser/profiles/profile_android.h"
+#include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
+#include "chrome/browser/signin/signin_manager_factory.h"
#include "chrome/common/chrome_version_info.h"
#include "chrome/common/pref_names.h"
#include "components/bookmarks/browser/bookmark_model.h"
@@ -19,6 +21,7 @@
#include "components/bookmarks/common/android/bookmark_id.h"
#include "components/bookmarks/common/android/bookmark_type.h"
#include "components/enhanced_bookmarks/enhanced_bookmark_model.h"
+#include "components/signin/core/browser/signin_manager.h"
#include "content/public/browser/browser_thread.h"
#include "jni/EnhancedBookmarksBridge_jni.h"
@@ -42,10 +45,17 @@ EnhancedBookmarksBridge::EnhancedBookmarksBridge(JNIEnv* env,
cluster_service_ =
ChromeBookmarkServerClusterServiceFactory::GetForBrowserContext(profile_);
cluster_service_->AddObserver(this);
+ search_service_.reset(new BookmarkServerSearchService(
+ profile_->GetRequestContext(),
+ ProfileOAuth2TokenServiceFactory::GetForProfile(profile_),
+ SigninManagerFactory::GetForProfile(profile_),
+ EnhancedBookmarkModelFactory::GetForBrowserContext(profile_)));
+ search_service_->AddObserver(this);
}
EnhancedBookmarksBridge::~EnhancedBookmarksBridge() {
cluster_service_->RemoveObserver(this);
+ search_service_->RemoveObserver(this);
}
void EnhancedBookmarksBridge::Destroy(JNIEnv*, jobject) {
@@ -99,8 +109,7 @@ ScopedJavaLocalRef<jobjectArray> EnhancedBookmarksBridge::GetFilters(
JNIEnv* env,
jobject obj) {
DCHECK(enhanced_bookmark_model_->loaded());
- const std::vector<std::string> filters =
- cluster_service_->GetClusters();
+ const std::vector<std::string> filters = cluster_service_->GetClusters();
return base::android::ToJavaArrayOfStrings(env, filters);
}
@@ -176,6 +185,35 @@ ScopedJavaLocalRef<jobject> EnhancedBookmarksBridge::AddBookmark(
return new_java_obj;
}
+void EnhancedBookmarksBridge::SendSearchRequest(JNIEnv* env,
+ jobject obj,
+ jstring j_query) {
+ search_service_->Search(base::android::ConvertJavaStringToUTF8(env, j_query));
+}
+
+ScopedJavaLocalRef<jobject> EnhancedBookmarksBridge::GetSearchResults(
+ JNIEnv* env,
+ jobject obj,
+ jstring j_query) {
+ DCHECK(enhanced_bookmark_model_->loaded());
+
+ ScopedJavaLocalRef<jobject> j_list =
+ Java_EnhancedBookmarksBridge_createBookmarkIdList(env);
+ scoped_ptr<std::vector<const BookmarkNode*>> results =
+ search_service_->ResultForQuery(
+ base::android::ConvertJavaStringToUTF8(env, j_query));
+
+ // If result is null, return a null java reference.
+ if (!results.get())
+ return ScopedJavaLocalRef<jobject>();
+
+ for (const BookmarkNode* node : *results) {
+ Java_EnhancedBookmarksBridge_addToBookmarkIdList(env, j_list.obj(),
+ node->id(), node->type());
+ }
+ return j_list;
+}
+
void EnhancedBookmarksBridge::OnChange(BookmarkServerService* service) {
DCHECK(enhanced_bookmark_model_->loaded());
JNIEnv* env = AttachCurrentThread();
@@ -184,7 +222,11 @@ void EnhancedBookmarksBridge::OnChange(BookmarkServerService* service) {
if (obj.is_null())
return;
- Java_EnhancedBookmarksBridge_onFiltersChanged(env, obj.obj());
+ if (service == cluster_service_) {
+ Java_EnhancedBookmarksBridge_onFiltersChanged(env, obj.obj());
+ } else if (service == search_service_.get()){
+ Java_EnhancedBookmarksBridge_onSearchResultReturned(env, obj.obj());
+ }
}
bool EnhancedBookmarksBridge::IsEditable(const BookmarkNode* node) const {

Powered by Google App Engine
This is Rietveld 408576698