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 |