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

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

Issue 695493005: Add local search API to Enhanced Bookmark Bridge (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: nits Created 6 years, 1 month 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 "base/prefs/pref_service.h" 9 #include "base/prefs/pref_service.h"
10 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 10 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
11 #include "chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_servi ce.h" 11 #include "chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_servi ce.h"
12 #include "chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_servi ce_factory.h" 12 #include "chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_servi ce_factory.h"
13 #include "chrome/browser/enhanced_bookmarks/enhanced_bookmark_model_factory.h" 13 #include "chrome/browser/enhanced_bookmarks/enhanced_bookmark_model_factory.h"
14 #include "chrome/browser/profiles/profile_android.h" 14 #include "chrome/browser/profiles/profile_android.h"
15 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h" 15 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
16 #include "chrome/browser/signin/signin_manager_factory.h" 16 #include "chrome/browser/signin/signin_manager_factory.h"
17 #include "chrome/common/chrome_version_info.h" 17 #include "chrome/common/chrome_version_info.h"
18 #include "chrome/common/pref_names.h" 18 #include "chrome/common/pref_names.h"
19 #include "components/bookmarks/browser/bookmark_match.h"
19 #include "components/bookmarks/browser/bookmark_model.h" 20 #include "components/bookmarks/browser/bookmark_model.h"
20 #include "components/bookmarks/browser/bookmark_utils.h" 21 #include "components/bookmarks/browser/bookmark_utils.h"
21 #include "components/bookmarks/common/android/bookmark_id.h" 22 #include "components/bookmarks/common/android/bookmark_id.h"
22 #include "components/bookmarks/common/android/bookmark_type.h" 23 #include "components/bookmarks/common/android/bookmark_type.h"
23 #include "components/enhanced_bookmarks/enhanced_bookmark_model.h" 24 #include "components/enhanced_bookmarks/enhanced_bookmark_model.h"
24 #include "components/signin/core/browser/signin_manager.h" 25 #include "components/signin/core/browser/signin_manager.h"
25 #include "content/public/browser/browser_thread.h" 26 #include "content/public/browser/browser_thread.h"
26 #include "jni/EnhancedBookmarksBridge_jni.h" 27 #include "jni/EnhancedBookmarksBridge_jni.h"
27 28
28 using base::android::AttachCurrentThread; 29 using base::android::AttachCurrentThread;
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 if (!results.get()) 208 if (!results.get())
208 return ScopedJavaLocalRef<jobject>(); 209 return ScopedJavaLocalRef<jobject>();
209 210
210 for (const BookmarkNode* node : *results) { 211 for (const BookmarkNode* node : *results) {
211 Java_EnhancedBookmarksBridge_addToBookmarkIdList(env, j_list.obj(), 212 Java_EnhancedBookmarksBridge_addToBookmarkIdList(env, j_list.obj(),
212 node->id(), node->type()); 213 node->id(), node->type());
213 } 214 }
214 return j_list; 215 return j_list;
215 } 216 }
216 217
218 ScopedJavaLocalRef<jobject> EnhancedBookmarksBridge::SearchLocalResults(
219 JNIEnv* env,
220 jobject obj,
221 jstring j_query) {
Kibeom Kim (inactive) 2014/10/31 09:13:51 This function doesn't use any enhanced bookmark fe
Ian Wen 2014/10/31 17:46:14 Done.
222 DCHECK(enhanced_bookmark_model_->loaded());
223
224 ScopedJavaLocalRef<jobject> j_list =
225 Java_EnhancedBookmarksBridge_createBookmarkIdList(env);
226 std::vector<bookmarks::BookmarkMatch> results;
227 const size_t kMaxBookmarkMatches = 1000;
Kibeom Kim (inactive) 2014/10/31 09:13:51 This is quite arbitrary. Let's make it a function
Ian Wen 2014/10/31 17:46:14 Basically we have 3 options here. 1. A number that
Kibeom Kim (inactive) 2014/10/31 18:04:42 Yes I agree that it's good to do such optimization
228 enhanced_bookmark_model_->bookmark_model()->GetBookmarksMatching(
lpromero 2014/10/31 16:27:36 As per email thread on mobile-stars, this search f
Ian Wen 2014/10/31 17:46:14 The function we used can be modified if we really
229 base::android::ConvertJavaStringToUTF16(env, j_query),
230 kMaxBookmarkMatches, &results);
231 for (const bookmarks::BookmarkMatch& match : results) {
232 const BookmarkNode* node = match.node;
233 Java_EnhancedBookmarksBridge_addToBookmarkIdList(env, j_list.obj(),
234 node->id(), node->type());
235 }
236 return j_list;
237 }
238
217 void EnhancedBookmarksBridge::OnChange(BookmarkServerService* service) { 239 void EnhancedBookmarksBridge::OnChange(BookmarkServerService* service) {
218 DCHECK(enhanced_bookmark_model_->loaded()); 240 DCHECK(enhanced_bookmark_model_->loaded());
219 JNIEnv* env = AttachCurrentThread(); 241 JNIEnv* env = AttachCurrentThread();
220 242
221 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); 243 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env);
222 if (obj.is_null()) 244 if (obj.is_null())
223 return; 245 return;
224 246
225 if (service == cluster_service_) { 247 if (service == cluster_service_) {
226 Java_EnhancedBookmarksBridge_onFiltersChanged(env, obj.obj()); 248 Java_EnhancedBookmarksBridge_onFiltersChanged(env, obj.obj());
(...skipping 15 matching lines...) Expand all
242 return reinterpret_cast<jlong>(new EnhancedBookmarksBridge( 264 return reinterpret_cast<jlong>(new EnhancedBookmarksBridge(
243 env, obj, ProfileAndroid::FromProfileAndroid(j_profile))); 265 env, obj, ProfileAndroid::FromProfileAndroid(j_profile)));
244 } 266 }
245 267
246 bool RegisterEnhancedBookmarksBridge(JNIEnv* env) { 268 bool RegisterEnhancedBookmarksBridge(JNIEnv* env) {
247 return RegisterNativesImpl(env); 269 return RegisterNativesImpl(env);
248 } 270 }
249 271
250 } // namespace android 272 } // namespace android
251 } // namespace enhanced_bookmarks 273 } // namespace enhanced_bookmarks
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698