| 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/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" |
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 58 search_service_->RemoveObserver(this); | 58 search_service_->RemoveObserver(this); |
| 59 } | 59 } |
| 60 | 60 |
| 61 void EnhancedBookmarksBridge::Destroy(JNIEnv*, jobject) { | 61 void EnhancedBookmarksBridge::Destroy(JNIEnv*, jobject) { |
| 62 delete this; | 62 delete this; |
| 63 } | 63 } |
| 64 | 64 |
| 65 ScopedJavaLocalRef<jstring> EnhancedBookmarksBridge::GetBookmarkDescription( | 65 ScopedJavaLocalRef<jstring> EnhancedBookmarksBridge::GetBookmarkDescription( |
| 66 JNIEnv* env, jobject obj, jlong id, jint type) { | 66 JNIEnv* env, jobject obj, jlong id, jint type) { |
| 67 DCHECK(enhanced_bookmark_model_->loaded()); | 67 DCHECK(enhanced_bookmark_model_->loaded()); |
| 68 DCHECK_EQ(BookmarkType::BOOKMARK_TYPE_NORMAL, type); | 68 if (type != BookmarkType::BOOKMARK_TYPE_NORMAL) { |
| 69 return base::android::ConvertUTF8ToJavaString(env, std::string()); |
| 70 } |
| 69 | 71 |
| 70 const BookmarkNode* node = bookmarks::GetBookmarkNodeByID( | 72 const BookmarkNode* node = bookmarks::GetBookmarkNodeByID( |
| 71 enhanced_bookmark_model_->bookmark_model(), static_cast<int64>(id)); | 73 enhanced_bookmark_model_->bookmark_model(), static_cast<int64>(id)); |
| 72 | 74 |
| 73 return node ? base::android::ConvertUTF8ToJavaString( | 75 return node ? base::android::ConvertUTF8ToJavaString( |
| 74 env, enhanced_bookmark_model_->GetDescription(node)) | 76 env, enhanced_bookmark_model_->GetDescription(node)) |
| 75 : ScopedJavaLocalRef<jstring>(); | 77 : ScopedJavaLocalRef<jstring>(); |
| 76 } | 78 } |
| 77 | 79 |
| 78 void EnhancedBookmarksBridge::SetBookmarkDescription(JNIEnv* env, | 80 void EnhancedBookmarksBridge::SetBookmarkDescription(JNIEnv* env, |
| 79 jobject obj, | 81 jobject obj, |
| 80 jlong id, | 82 jlong id, |
| 81 jint type, | 83 jint type, |
| 82 jstring description) { | 84 jstring description) { |
| 83 DCHECK(enhanced_bookmark_model_->loaded()); | 85 DCHECK(enhanced_bookmark_model_->loaded()); |
| 84 DCHECK_EQ(type, BookmarkType::BOOKMARK_TYPE_NORMAL); | 86 DCHECK_EQ(type, BookmarkType::BOOKMARK_TYPE_NORMAL); |
| 85 | 87 |
| 86 const BookmarkNode* node = bookmarks::GetBookmarkNodeByID( | 88 const BookmarkNode* node = bookmarks::GetBookmarkNodeByID( |
| 87 enhanced_bookmark_model_->bookmark_model(), static_cast<int64>(id)); | 89 enhanced_bookmark_model_->bookmark_model(), static_cast<int64>(id)); |
| 88 | 90 |
| 89 enhanced_bookmark_model_->SetDescription( | 91 enhanced_bookmark_model_->SetDescription( |
| 90 node, base::android::ConvertJavaStringToUTF8(env, description)); | 92 node, base::android::ConvertJavaStringToUTF8(env, description)); |
| 91 } | 93 } |
| 92 | 94 |
| 95 ScopedJavaLocalRef<jobjectArray> EnhancedBookmarksBridge::GetFiltersForBookmark( |
| 96 JNIEnv* env, |
| 97 jobject obj, |
| 98 jlong id, |
| 99 jint type) { |
| 100 DCHECK(enhanced_bookmark_model_->loaded()); |
| 101 if (type != BookmarkType::BOOKMARK_TYPE_NORMAL) { |
| 102 return base::android::ToJavaArrayOfStrings(env, std::vector<std::string>()); |
| 103 } |
| 104 |
| 105 const BookmarkNode* node = bookmarks::GetBookmarkNodeByID( |
| 106 enhanced_bookmark_model_->bookmark_model(), static_cast<int64>(id)); |
| 107 std::vector<std::string> filters = |
| 108 cluster_service_->ClustersForBookmark(node); |
| 109 return base::android::ToJavaArrayOfStrings(env, filters); |
| 110 } |
| 111 |
| 93 void EnhancedBookmarksBridge::GetBookmarksForFilter(JNIEnv* env, | 112 void EnhancedBookmarksBridge::GetBookmarksForFilter(JNIEnv* env, |
| 94 jobject obj, | 113 jobject obj, |
| 95 jstring j_filter, | 114 jstring j_filter, |
| 96 jobject j_result_obj) { | 115 jobject j_result_obj) { |
| 97 DCHECK(enhanced_bookmark_model_->loaded()); | 116 DCHECK(enhanced_bookmark_model_->loaded()); |
| 98 const std::string title = | 117 const std::string title = |
| 99 base::android::ConvertJavaStringToUTF8(env, j_filter); | 118 base::android::ConvertJavaStringToUTF8(env, j_filter); |
| 100 const std::vector<const BookmarkNode*> bookmarks = | 119 const std::vector<const BookmarkNode*> bookmarks = |
| 101 cluster_service_->BookmarksForClusterNamed(title); | 120 cluster_service_->BookmarksForClusterNamed(title); |
| 102 for (const BookmarkNode* node : bookmarks) { | 121 for (const BookmarkNode* node : bookmarks) { |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 242 return reinterpret_cast<jlong>(new EnhancedBookmarksBridge( | 261 return reinterpret_cast<jlong>(new EnhancedBookmarksBridge( |
| 243 env, obj, ProfileAndroid::FromProfileAndroid(j_profile))); | 262 env, obj, ProfileAndroid::FromProfileAndroid(j_profile))); |
| 244 } | 263 } |
| 245 | 264 |
| 246 bool RegisterEnhancedBookmarksBridge(JNIEnv* env) { | 265 bool RegisterEnhancedBookmarksBridge(JNIEnv* env) { |
| 247 return RegisterNativesImpl(env); | 266 return RegisterNativesImpl(env); |
| 248 } | 267 } |
| 249 | 268 |
| 250 } // namespace android | 269 } // namespace android |
| 251 } // namespace enhanced_bookmarks | 270 } // namespace enhanced_bookmarks |
| OLD | NEW |