Chromium Code Reviews| Index: components/enhanced_bookmarks/android/enhanced_bookmarks_bridge.cc |
| diff --git a/components/enhanced_bookmarks/android/enhanced_bookmarks_bridge.cc b/components/enhanced_bookmarks/android/enhanced_bookmarks_bridge.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..d23d8085a29132bd35d120e8d8ca811d54796a1a |
| --- /dev/null |
| +++ b/components/enhanced_bookmarks/android/enhanced_bookmarks_bridge.cc |
| @@ -0,0 +1,69 @@ |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "components/enhanced_bookmarks/android/enhanced_bookmarks_bridge.h" |
| + |
| +#include "base/android/jni_string.h" |
| +#include "components/bookmarks/browser/bookmark_model.h" |
| +#include "components/bookmarks/browser/bookmark_utils.h" |
| +#include "components/bookmarks/common/android/bookmark_type.h" |
| +#include "components/enhanced_bookmarks/metadata_accessor.h" |
| +#include "jni/EnhancedBookmarksBridge_jni.h" |
| + |
| +using bookmarks::BookmarkType; |
| + |
| +namespace enhanced_bookmarks { |
| +namespace android { |
| + |
| +EnhancedBookmarksBridge::EnhancedBookmarksBridge(JNIEnv* env, |
| + jobject obj, |
| + jlong bookmark_model_ptr) { |
| + bookmark_model_ = reinterpret_cast<BookmarkModel*>(bookmark_model_ptr); |
| +} |
| + |
| +void EnhancedBookmarksBridge::Destroy(JNIEnv*, jobject) { |
| + delete this; |
| +} |
| + |
| +ScopedJavaLocalRef<jstring> EnhancedBookmarksBridge::GetBookmarkDescription( |
| + JNIEnv* env, jobject obj, jlong id, jint type) { |
| + DCHECK(bookmark_model_->loaded()); |
| + DCHECK(type == BookmarkType::NORMAL); |
|
Yaron
2014/08/12 20:15:50
DCHECK_EQ
Kibeom Kim (inactive)
2014/08/12 22:33:48
Done.
|
| + |
| + const BookmarkNode *node = bookmarks::GetBookmarkNodeByID( |
| + bookmark_model_, static_cast<int64>(id)); |
| + |
| + return node ? |
| + base::android::ConvertUTF8ToJavaString( |
| + env, enhanced_bookmarks::DescriptionFromBookmark(node)) : |
| + ScopedJavaLocalRef<jstring>(); |
| +} |
| + |
| +void EnhancedBookmarksBridge::SetBookmarkDescription(JNIEnv* env, |
| + jobject obj, |
| + jlong id, |
| + jint type, |
| + jstring description) { |
| + DCHECK(bookmark_model_->loaded()); |
| + DCHECK(type == BookmarkType::NORMAL); |
|
Yaron
2014/08/12 20:15:49
DCHECK_EQ
Kibeom Kim (inactive)
2014/08/12 22:33:48
Done.
|
| + |
| + const BookmarkNode *node = bookmarks::GetBookmarkNodeByID( |
| + bookmark_model_, static_cast<int64>(id)); |
| + |
| + enhanced_bookmarks::SetDescriptionForBookmark( |
| + bookmark_model_, node, |
| + base::android::ConvertJavaStringToUTF8(env, description)); |
| +} |
| + |
| +static jlong Init(JNIEnv* env, jobject obj, jlong bookmark_model_ptr) { |
| + return reinterpret_cast<jlong>( |
| + new EnhancedBookmarksBridge(env, obj, bookmark_model_ptr)); |
| +} |
| + |
| +bool RegisterEnhancedBookmarksBridge(JNIEnv* env) { |
| + return RegisterNativesImpl(env); |
| +} |
| + |
| +} // namespace android |
| +} // namespace enhanced_bookmarks |