| OLD | NEW |
| 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/enhanced_bookmarks/android/enhanced_bookmarks_bridge.h" | 5 #include "chrome/browser/enhanced_bookmarks/android/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" |
| (...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 73 Profile* profile) : weak_java_ref_(env, obj) { | 73 Profile* profile) : weak_java_ref_(env, obj) { |
| 74 profile_ = profile; | 74 profile_ = profile; |
| 75 enhanced_bookmark_model_ = | 75 enhanced_bookmark_model_ = |
| 76 EnhancedBookmarkModelFactory::GetForBrowserContext(profile_); | 76 EnhancedBookmarkModelFactory::GetForBrowserContext(profile_); |
| 77 enhanced_bookmark_model_->SetVersionSuffix(chrome::VersionInfo().OSType()); | 77 enhanced_bookmark_model_->SetVersionSuffix(chrome::VersionInfo().OSType()); |
| 78 cluster_service_ = | 78 cluster_service_ = |
| 79 BookmarkServerClusterServiceFactory::GetForBrowserContext(profile_); | 79 BookmarkServerClusterServiceFactory::GetForBrowserContext(profile_); |
| 80 cluster_service_->AddObserver(this); | 80 cluster_service_->AddObserver(this); |
| 81 bookmark_image_service_ = static_cast<BookmarkImageServiceAndroid*>( | 81 bookmark_image_service_ = static_cast<BookmarkImageServiceAndroid*>( |
| 82 BookmarkImageServiceFactory::GetForBrowserContext(profile_)); | 82 BookmarkImageServiceFactory::GetForBrowserContext(profile_)); |
| 83 search_service_.reset(new BookmarkServerSearchService( | |
| 84 profile_->GetRequestContext(), | |
| 85 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_), | |
| 86 SigninManagerFactory::GetForProfile(profile_), | |
| 87 EnhancedBookmarkModelFactory::GetForBrowserContext(profile_))); | |
| 88 search_service_->AddObserver(this); | |
| 89 } | 83 } |
| 90 | 84 |
| 91 EnhancedBookmarksBridge::~EnhancedBookmarksBridge() { | 85 EnhancedBookmarksBridge::~EnhancedBookmarksBridge() { |
| 92 cluster_service_->RemoveObserver(this); | 86 cluster_service_->RemoveObserver(this); |
| 93 search_service_->RemoveObserver(this); | |
| 94 } | 87 } |
| 95 | 88 |
| 96 void EnhancedBookmarksBridge::Destroy(JNIEnv*, jobject) { | 89 void EnhancedBookmarksBridge::Destroy(JNIEnv*, jobject) { |
| 97 delete this; | 90 delete this; |
| 98 } | 91 } |
| 99 | 92 |
| 100 void EnhancedBookmarksBridge::SalientImageForUrl(JNIEnv* env, | 93 void EnhancedBookmarksBridge::SalientImageForUrl(JNIEnv* env, |
| 101 jobject obj, | 94 jobject obj, |
| 102 jstring j_url, | 95 jstring j_url, |
| 103 jobject j_callback) { | 96 jobject j_callback) { |
| (...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 254 base::Time::Now()); | 247 base::Time::Now()); |
| 255 if (!new_node) { | 248 if (!new_node) { |
| 256 NOTREACHED(); | 249 NOTREACHED(); |
| 257 return ScopedJavaLocalRef<jobject>(); | 250 return ScopedJavaLocalRef<jobject>(); |
| 258 } | 251 } |
| 259 ScopedJavaLocalRef<jobject> new_java_obj = JavaBookmarkIdCreateBookmarkId( | 252 ScopedJavaLocalRef<jobject> new_java_obj = JavaBookmarkIdCreateBookmarkId( |
| 260 env, new_node->id(), BookmarkType::BOOKMARK_TYPE_NORMAL); | 253 env, new_node->id(), BookmarkType::BOOKMARK_TYPE_NORMAL); |
| 261 return new_java_obj; | 254 return new_java_obj; |
| 262 } | 255 } |
| 263 | 256 |
| 264 void EnhancedBookmarksBridge::SendSearchRequest(JNIEnv* env, | |
| 265 jobject obj, | |
| 266 jstring j_query) { | |
| 267 search_service_->Search(base::android::ConvertJavaStringToUTF8(env, j_query)); | |
| 268 } | |
| 269 | |
| 270 ScopedJavaLocalRef<jobject> EnhancedBookmarksBridge::GetSearchResults( | |
| 271 JNIEnv* env, | |
| 272 jobject obj, | |
| 273 jstring j_query) { | |
| 274 DCHECK(enhanced_bookmark_model_->loaded()); | |
| 275 | |
| 276 ScopedJavaLocalRef<jobject> j_list = | |
| 277 Java_EnhancedBookmarksBridge_createBookmarkIdList(env); | |
| 278 scoped_ptr<std::vector<const BookmarkNode*>> results = | |
| 279 search_service_->ResultForQuery( | |
| 280 base::android::ConvertJavaStringToUTF8(env, j_query)); | |
| 281 | |
| 282 // If result is null, return a null java reference. | |
| 283 if (!results.get()) | |
| 284 return ScopedJavaLocalRef<jobject>(); | |
| 285 | |
| 286 for (const BookmarkNode* node : *results) { | |
| 287 Java_EnhancedBookmarksBridge_addToBookmarkIdList(env, j_list.obj(), | |
| 288 node->id(), node->type()); | |
| 289 } | |
| 290 return j_list; | |
| 291 } | |
| 292 | |
| 293 void EnhancedBookmarksBridge::OnChange(BookmarkServerService* service) { | 257 void EnhancedBookmarksBridge::OnChange(BookmarkServerService* service) { |
| 294 DCHECK(enhanced_bookmark_model_->loaded()); | 258 DCHECK(enhanced_bookmark_model_->loaded()); |
| 295 JNIEnv* env = AttachCurrentThread(); | 259 JNIEnv* env = AttachCurrentThread(); |
| 296 | 260 |
| 297 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); | 261 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); |
| 298 if (obj.is_null()) | 262 if (obj.is_null()) |
| 299 return; | 263 return; |
| 300 | 264 |
| 301 if (service == cluster_service_) { | 265 if (service == cluster_service_) { |
| 302 Java_EnhancedBookmarksBridge_onFiltersChanged(env, obj.obj()); | 266 Java_EnhancedBookmarksBridge_onFiltersChanged(env, obj.obj()); |
| 303 } else if (service == search_service_.get()) { | |
| 304 Java_EnhancedBookmarksBridge_onSearchResultReturned(env, obj.obj()); | |
| 305 } | 267 } |
| 306 } | 268 } |
| 307 | 269 |
| 308 bool EnhancedBookmarksBridge::IsEditable(const BookmarkNode* node) const { | 270 bool EnhancedBookmarksBridge::IsEditable(const BookmarkNode* node) const { |
| 309 if (!node || (node->type() != BookmarkNode::FOLDER && | 271 if (!node || (node->type() != BookmarkNode::FOLDER && |
| 310 node->type() != BookmarkNode::URL)) { | 272 node->type() != BookmarkNode::URL)) { |
| 311 return false; | 273 return false; |
| 312 } | 274 } |
| 313 return profile_->GetPrefs()->GetBoolean( | 275 return profile_->GetPrefs()->GetBoolean( |
| 314 bookmarks::prefs::kEditBookmarksEnabled); | 276 bookmarks::prefs::kEditBookmarksEnabled); |
| 315 } | 277 } |
| 316 | 278 |
| 317 static jint GetDefaultViewMode(JNIEnv* env, jclass jcaller) { | 279 static jint GetDefaultViewMode(JNIEnv* env, jclass jcaller) { |
| 318 return enhanced_bookmarks::GetDefaultViewMode(); | 280 return enhanced_bookmarks::GetDefaultViewMode(); |
| 319 } | 281 } |
| 320 | 282 |
| 321 static jlong Init(JNIEnv* env, jobject obj, jobject j_profile) { | 283 static jlong Init(JNIEnv* env, jobject obj, jobject j_profile) { |
| 322 return reinterpret_cast<jlong>(new EnhancedBookmarksBridge( | 284 return reinterpret_cast<jlong>(new EnhancedBookmarksBridge( |
| 323 env, obj, ProfileAndroid::FromProfileAndroid(j_profile))); | 285 env, obj, ProfileAndroid::FromProfileAndroid(j_profile))); |
| 324 } | 286 } |
| 325 | 287 |
| 326 bool RegisterEnhancedBookmarksBridge(JNIEnv* env) { | 288 bool RegisterEnhancedBookmarksBridge(JNIEnv* env) { |
| 327 return RegisterNativesImpl(env); | 289 return RegisterNativesImpl(env); |
| 328 } | 290 } |
| 329 | 291 |
| 330 } // namespace android | 292 } // namespace android |
| 331 } // namespace enhanced_bookmarks | 293 } // namespace enhanced_bookmarks |
| OLD | NEW |