Index: chrome/browser/android/bookmarks_bridge.cc |
diff --git a/chrome/browser/android/bookmarks_bridge.cc b/chrome/browser/android/bookmarks_bridge.cc |
index de474258f56453947303219b7b047b14d34a300c..58dfde4844c56398dd4f99b585f85bf8c6077988 100644 |
--- a/chrome/browser/android/bookmarks_bridge.cc |
+++ b/chrome/browser/android/bookmarks_bridge.cc |
@@ -17,6 +17,7 @@ |
using base::android::AttachCurrentThread; |
using base::android::ConvertUTF8ToJavaString; |
using base::android::ConvertUTF16ToJavaString; |
+using base::android::ScopedJavaLocalRef; |
using base::android::ScopedJavaGlobalRef; |
using content::BrowserThread; |
@@ -104,22 +105,37 @@ void BookmarksBridge::DeleteBookmark(JNIEnv* env, |
bookmark_model_->Remove(parent_node, parent_node->GetIndexOf(node)); |
} |
-void BookmarksBridge::ExtractBookmarkNodeInformation( |
- const BookmarkNode* node, |
- jobject j_result_obj) { |
+ScopedJavaLocalRef<jobject> BookmarksBridge::CreateJavaBookmark( |
+ const BookmarkNode* node) { |
JNIEnv* env = AttachCurrentThread(); |
+ |
const BookmarkNode* parent = node->parent(); |
int64 parent_id = -1; |
newt (away)
2013/09/06 22:06:33
maybe:
int64 parent_id = parent ? parent->id(
Ted C
2013/09/06 22:14:27
Done.
|
if (parent) |
parent_id = node->parent()->id(); |
+ |
std::string url; |
if (node->is_url()) |
url = node->url().spec(); |
- Java_BookmarksBridge_create( |
- env, j_result_obj, node->id(), |
+ |
+ return Java_BookmarksBridge_create( |
+ env, |
+ node->id(), |
ConvertUTF16ToJavaString(env, node->GetTitle()).obj(), |
ConvertUTF8ToJavaString(env, url).obj(), |
- node->is_folder(), parent_id, IsEditable(node)); |
+ node->is_folder(), |
+ parent_id, |
+ IsEditable(node)); |
+} |
+ |
+void BookmarksBridge::ExtractBookmarkNodeInformation( |
+ const BookmarkNode* node, |
+ jobject j_result_obj) { |
+ JNIEnv* env = AttachCurrentThread(); |
+ Java_BookmarksBridge_addToList( |
+ env, |
+ j_result_obj, |
+ CreateJavaBookmark(node).obj()); |
} |
const BookmarkNode* BookmarksBridge::GetFolderNodeFromId(jlong folder_id) { |
@@ -162,3 +178,91 @@ void BookmarksBridge::BookmarkModelBeingDeleted(BookmarkModel* model) { |
return; |
Java_BookmarksBridge_bookmarkModelDeleted(env, obj.obj()); |
} |
+ |
+void BookmarksBridge::BookmarkNodeMoved(BookmarkModel* model, |
+ const BookmarkNode* old_parent, |
+ int old_index, |
+ const BookmarkNode* new_parent, |
+ int new_index) { |
+ JNIEnv* env = AttachCurrentThread(); |
+ ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); |
+ if (obj.is_null()) |
+ return; |
+ Java_BookmarksBridge_bookmarkNodeMoved( |
+ env, |
+ obj.obj(), |
+ CreateJavaBookmark(old_parent).obj(), |
+ old_index, |
+ CreateJavaBookmark(new_parent).obj(), |
+ new_index); |
+} |
+ |
+void BookmarksBridge::BookmarkNodeAdded(BookmarkModel* model, |
+ const BookmarkNode* parent, |
+ int index) { |
+ JNIEnv* env = AttachCurrentThread(); |
+ ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); |
+ if (obj.is_null()) |
+ return; |
+ Java_BookmarksBridge_bookmarkNodeAdded( |
newt (away)
2013/09/06 22:06:33
indent
Ted C
2013/09/06 22:14:27
Done.
|
+ env, |
+ obj.obj(), |
+ CreateJavaBookmark(parent).obj(), |
+ index); |
+} |
+ |
+void BookmarksBridge::BookmarkNodeRemoved(BookmarkModel* model, |
+ const BookmarkNode* parent, |
+ int old_index, |
+ const BookmarkNode* node) { |
+ JNIEnv* env = AttachCurrentThread(); |
+ ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); |
+ if (obj.is_null()) |
+ return; |
+ Java_BookmarksBridge_bookmarkNodeRemoved( |
+ env, |
+ obj.obj(), |
+ CreateJavaBookmark(parent).obj(), |
+ old_index, |
+ CreateJavaBookmark(node).obj()); |
+} |
+ |
+void BookmarksBridge::BookmarkNodeChanged(BookmarkModel* model, |
+ const BookmarkNode* node) { |
+ JNIEnv* env = AttachCurrentThread(); |
+ ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); |
+ if (obj.is_null()) |
+ return; |
+ Java_BookmarksBridge_bookmarkNodeChanged( |
newt (away)
2013/09/06 22:06:33
indent
Ted C
2013/09/06 22:14:27
Done.
|
+ env, |
+ obj.obj(), |
+ CreateJavaBookmark(node).obj()); |
+} |
+ |
+void BookmarksBridge::BookmarkNodeChildrenReordered(BookmarkModel* model, |
+ const BookmarkNode* node) { |
+ JNIEnv* env = AttachCurrentThread(); |
+ ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); |
+ if (obj.is_null()) |
+ return; |
+ Java_BookmarksBridge_bookmarkNodeChildrenReordered( |
+ env, |
newt (away)
2013/09/06 22:06:33
indent
Ted C
2013/09/06 22:14:27
Done.
|
+ obj.obj(), |
+ CreateJavaBookmark(node).obj()); |
+} |
+ |
+void BookmarksBridge::ExtensiveBookmarkChangesBeginning(BookmarkModel* model) { |
+ JNIEnv* env = AttachCurrentThread(); |
+ ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); |
+ if (obj.is_null()) |
+ return; |
+ Java_BookmarksBridge_extensiveBookmarkChangesBeginning(env, obj.obj()); |
+} |
+ |
+void BookmarksBridge::ExtensiveBookmarkChangesEnded(BookmarkModel* model) { |
+ JNIEnv* env = AttachCurrentThread(); |
+ ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); |
+ if (obj.is_null()) |
+ return; |
+ Java_BookmarksBridge_extensiveBookmarkChangesEnded(env, obj.obj()); |
+} |