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

Side by Side Diff: chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.cc

Issue 637323005: Add Search Service in Enhanced Bookmark Bridge (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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.h" 5 #include "chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.h"
6 6
7 #include "base/android/jni_array.h" 7 #include "base/android/jni_array.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 9 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
10 #include "chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_servi ce.h" 10 #include "chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_servi ce.h"
11 #include "chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_servi ce_factory.h" 11 #include "chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_servi ce_factory.h"
12 #include "chrome/browser/enhanced_bookmarks/enhanced_bookmark_model_factory.h"
12 #include "chrome/browser/profiles/profile_android.h" 13 #include "chrome/browser/profiles/profile_android.h"
14 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
15 #include "chrome/browser/signin/signin_manager_factory.h"
13 #include "components/bookmarks/browser/bookmark_model.h" 16 #include "components/bookmarks/browser/bookmark_model.h"
14 #include "components/bookmarks/browser/bookmark_utils.h" 17 #include "components/bookmarks/browser/bookmark_utils.h"
15 #include "components/bookmarks/common/android/bookmark_type.h" 18 #include "components/bookmarks/common/android/bookmark_type.h"
19 #include "components/enhanced_bookmarks/enhanced_bookmark_model.h"
16 #include "components/enhanced_bookmarks/metadata_accessor.h" 20 #include "components/enhanced_bookmarks/metadata_accessor.h"
21 #include "components/signin/core/browser/signin_manager.h"
17 #include "jni/EnhancedBookmarksBridge_jni.h" 22 #include "jni/EnhancedBookmarksBridge_jni.h"
18 23
19 using base::android::AttachCurrentThread; 24 using base::android::AttachCurrentThread;
20 using bookmarks::BookmarkType; 25 using bookmarks::BookmarkType;
21 26
22 namespace enhanced_bookmarks { 27 namespace enhanced_bookmarks {
23 namespace android { 28 namespace android {
24 29
25 EnhancedBookmarksBridge::EnhancedBookmarksBridge(JNIEnv* env, 30 EnhancedBookmarksBridge::EnhancedBookmarksBridge(JNIEnv* env,
26 jobject obj, 31 jobject obj,
27 Profile* profile) : weak_java_ref_(env, obj) { 32 Profile* profile) : weak_java_ref_(env, obj) {
28 profile_ = profile; 33 profile_ = profile;
29 bookmark_model_ = BookmarkModelFactory::GetForProfile(profile_); 34 bookmark_model_ = BookmarkModelFactory::GetForProfile(profile_);
30 cluster_service_ = 35 cluster_service_ =
31 ChromeBookmarkServerClusterServiceFactory::GetForBrowserContext(profile_); 36 ChromeBookmarkServerClusterServiceFactory::GetForBrowserContext(profile_);
32 cluster_service_->AddObserver(this); 37 cluster_service_->AddObserver(this);
38 search_service_ = new BookmarkServerSearchService(
39 profile_->GetRequestContext(),
40 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_),
41 SigninManagerFactory::GetForProfile(profile_),
42 EnhancedBookmarkModelFactory::GetForBrowserContext(profile_));
43 search_service_->AddObserver(this);
33 } 44 }
34 45
35 EnhancedBookmarksBridge::~EnhancedBookmarksBridge() { 46 EnhancedBookmarksBridge::~EnhancedBookmarksBridge() {
36 cluster_service_->RemoveObserver(this); 47 cluster_service_->RemoveObserver(this);
48 search_service_->RemoveObserver(this);
49 delete search_service_;
37 } 50 }
38 51
39 void EnhancedBookmarksBridge::Destroy(JNIEnv*, jobject) { 52 void EnhancedBookmarksBridge::Destroy(JNIEnv*, jobject) {
40 delete this; 53 delete this;
41 } 54 }
42 55
43 ScopedJavaLocalRef<jstring> EnhancedBookmarksBridge::GetBookmarkDescription( 56 ScopedJavaLocalRef<jstring> EnhancedBookmarksBridge::GetBookmarkDescription(
44 JNIEnv* env, jobject obj, jlong id, jint type) { 57 JNIEnv* env, jobject obj, jlong id, jint type) {
45 DCHECK(bookmark_model_->loaded()); 58 DCHECK(bookmark_model_->loaded());
46 DCHECK_EQ(type, BookmarkType::NORMAL); 59 DCHECK_EQ(type, BookmarkType::NORMAL);
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 for (const BookmarkNode* node : bookmarks) { 95 for (const BookmarkNode* node : bookmarks) {
83 Java_EnhancedBookmarksBridge_addToBookmarkIdList( 96 Java_EnhancedBookmarksBridge_addToBookmarkIdList(
84 env, j_result_obj, node->id(), node->type()); 97 env, j_result_obj, node->id(), node->type());
85 } 98 }
86 } 99 }
87 100
88 ScopedJavaLocalRef<jobjectArray> EnhancedBookmarksBridge::GetFilters( 101 ScopedJavaLocalRef<jobjectArray> EnhancedBookmarksBridge::GetFilters(
89 JNIEnv* env, 102 JNIEnv* env,
90 jobject obj) { 103 jobject obj) {
91 DCHECK(bookmark_model_->loaded()); 104 DCHECK(bookmark_model_->loaded());
92 const std::vector<std::string> filters = 105 const std::vector<std::string> filters = cluster_service_->GetClusters();
93 cluster_service_->GetClusters();
94 return base::android::ToJavaArrayOfStrings(env, filters); 106 return base::android::ToJavaArrayOfStrings(env, filters);
95 } 107 }
96 108
109 void EnhancedBookmarksBridge::SendSearchRequest(JNIEnv* env,
110 jobject obj,
111 jstring j_query) {
112 search_service_->Search(base::android::ConvertJavaStringToUTF8(env, j_query));
113 }
114
115 void EnhancedBookmarksBridge::GetSearchResults(
116 JNIEnv* env,
117 jobject obj,
118 jobject j_list,
119 jstring j_query) {
120 DCHECK(bookmark_model_->loaded());
121 std::vector<const BookmarkNode*> results = search_service_->ResultForQuery(
122 base::android::ConvertJavaStringToUTF8(env, j_query));
123 for (const BookmarkNode* node : results) {
124 Java_EnhancedBookmarksBridge_addToBookmarkIdList(
125 env, j_list, node->id(), node->type());
Ted C 2014/10/23 00:31:42 indented too much
Ian Wen 2014/10/29 00:11:39 Function deleted.
126 }
127 }
128
97 void EnhancedBookmarksBridge::OnChange(BookmarkServerService* service) { 129 void EnhancedBookmarksBridge::OnChange(BookmarkServerService* service) {
98 DCHECK(bookmark_model_->loaded()); 130 DCHECK(bookmark_model_->loaded());
99 JNIEnv* env = AttachCurrentThread(); 131 JNIEnv* env = AttachCurrentThread();
100 132
101 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); 133 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env);
102 if (obj.is_null()) 134 if (obj.is_null())
103 return; 135 return;
104 136
105 Java_EnhancedBookmarksBridge_onFiltersChanged(env, obj.obj()); 137 if (service == cluster_service_) {
138 Java_EnhancedBookmarksBridge_onFiltersChanged(env, obj.obj());
139 } else if (service == search_service_){
140 Java_EnhancedBookmarksBridge_onSearchResultReturned(env, obj.obj());
141 }
106 } 142 }
107 143
108 static jlong Init(JNIEnv* env, jobject obj, jobject j_profile) { 144 static jlong Init(JNIEnv* env, jobject obj, jobject j_profile) {
109 return reinterpret_cast<jlong>(new EnhancedBookmarksBridge( 145 return reinterpret_cast<jlong>(new EnhancedBookmarksBridge(
110 env, obj, ProfileAndroid::FromProfileAndroid(j_profile))); 146 env, obj, ProfileAndroid::FromProfileAndroid(j_profile)));
111 } 147 }
112 148
113 bool RegisterEnhancedBookmarksBridge(JNIEnv* env) { 149 bool RegisterEnhancedBookmarksBridge(JNIEnv* env) {
114 return RegisterNativesImpl(env); 150 return RegisterNativesImpl(env);
115 } 151 }
116 152
117 } // namespace android 153 } // namespace android
118 } // namespace enhanced_bookmarks 154 } // namespace enhanced_bookmarks
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698