OLD | NEW |
---|---|
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/bookmarks/bookmarks_bridge.h" | 5 #include "chrome/browser/android/bookmarks/bookmarks_bridge.h" |
6 | 6 |
7 #include "base/android/jni_string.h" | 7 #include "base/android/jni_string.h" |
8 #include "base/containers/stack_container.h" | 8 #include "base/containers/stack_container.h" |
9 #include "base/i18n/string_compare.h" | 9 #include "base/i18n/string_compare.h" |
10 #include "base/prefs/pref_service.h" | 10 #include "base/prefs/pref_service.h" |
(...skipping 128 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
139 | 139 |
140 static bool IsEditBookmarksEnabled() { | 140 static bool IsEditBookmarksEnabled() { |
141 return ProfileManager::GetLastUsedProfile()->GetPrefs()->GetBoolean( | 141 return ProfileManager::GetLastUsedProfile()->GetPrefs()->GetBoolean( |
142 bookmarks::prefs::kEditBookmarksEnabled); | 142 bookmarks::prefs::kEditBookmarksEnabled); |
143 } | 143 } |
144 | 144 |
145 static jboolean IsEditBookmarksEnabled(JNIEnv* env, jclass clazz) { | 145 static jboolean IsEditBookmarksEnabled(JNIEnv* env, jclass clazz) { |
146 return IsEditBookmarksEnabled(); | 146 return IsEditBookmarksEnabled(); |
147 } | 147 } |
148 | 148 |
149 void BookmarksBridge::LoadEmptyPartnerBookmarkShimForTesting(JNIEnv* env, | |
150 jobject obj) { | |
151 if (partner_bookmarks_shim_->IsLoaded()) | |
152 return; | |
153 partner_bookmarks_shim_->SetPartnerBookmarksRoot( | |
154 new BookmarkPermanentNode(0)); | |
155 DCHECK(partner_bookmarks_shim_->IsLoaded()); | |
156 } | |
157 | |
149 ScopedJavaLocalRef<jobject> BookmarksBridge::GetBookmarkByID(JNIEnv* env, | 158 ScopedJavaLocalRef<jobject> BookmarksBridge::GetBookmarkByID(JNIEnv* env, |
150 jobject obj, | 159 jobject obj, |
151 jlong id, | 160 jlong id, |
152 jint type) { | 161 jint type) { |
153 DCHECK(IsLoaded()); | 162 DCHECK(IsLoaded()); |
154 return CreateJavaBookmark(GetNodeByID(id, type)); | 163 return CreateJavaBookmark(GetNodeByID(id, type)); |
155 } | 164 } |
156 | 165 |
157 bool BookmarksBridge::IsDoingExtensiveChanges(JNIEnv* env, jobject obj) { | 166 bool BookmarksBridge::IsDoingExtensiveChanges(JNIEnv* env, jobject obj) { |
158 return bookmark_model_->IsDoingExtensiveChanges(); | 167 return bookmark_model_->IsDoingExtensiveChanges(); |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
349 bookmarkList.rbegin(); | 358 bookmarkList.rbegin(); |
350 it != bookmarkList.rend(); | 359 it != bookmarkList.rend(); |
351 ++it) { | 360 ++it) { |
352 stk.push(std::make_pair(*it, depth + 1)); | 361 stk.push(std::make_pair(*it, depth + 1)); |
353 } | 362 } |
354 } | 363 } |
355 } | 364 } |
356 | 365 |
357 ScopedJavaLocalRef<jobject> BookmarksBridge::GetMobileFolderId(JNIEnv* env, | 366 ScopedJavaLocalRef<jobject> BookmarksBridge::GetMobileFolderId(JNIEnv* env, |
358 jobject obj) { | 367 jobject obj) { |
359 const BookmarkNode* mobileNode = bookmark_model_->mobile_node(); | 368 const BookmarkNode* mobile_node = bookmark_model_->mobile_node(); |
360 ScopedJavaLocalRef<jobject> folder_id_obj = | 369 ScopedJavaLocalRef<jobject> folder_id_obj = |
361 Java_BookmarksBridge_createBookmarkId( | 370 Java_BookmarksBridge_createBookmarkId( |
362 env, mobileNode->id(), GetBookmarkType(mobileNode)); | 371 env, mobile_node->id(), GetBookmarkType(mobile_node)); |
363 return folder_id_obj; | 372 return folder_id_obj; |
364 } | 373 } |
365 | 374 |
375 ScopedJavaLocalRef<jobject> BookmarksBridge::GetOtherFolderId(JNIEnv* env, | |
376 jobject obj) { | |
377 const BookmarkNode* other_node = bookmark_model_->other_node(); | |
378 ScopedJavaLocalRef<jobject> folder_id_obj = | |
379 Java_BookmarksBridge_createBookmarkId( | |
380 env, other_node->id(), GetBookmarkType(other_node)); | |
381 return folder_id_obj; | |
382 } | |
383 | |
384 ScopedJavaLocalRef<jobject> BookmarksBridge::GetDesktopFolderId(JNIEnv* env, | |
385 jobject obj) { | |
386 const BookmarkNode* desktop_node = bookmark_model_->bookmark_bar_node(); | |
387 ScopedJavaLocalRef<jobject> folder_id_obj = | |
388 Java_BookmarksBridge_createBookmarkId( | |
389 env, desktop_node->id(), GetBookmarkType(desktop_node)); | |
390 return folder_id_obj; | |
391 } | |
392 | |
366 void BookmarksBridge::GetChildIDs(JNIEnv* env, | 393 void BookmarksBridge::GetChildIDs(JNIEnv* env, |
367 jobject obj, | 394 jobject obj, |
368 jlong id, | 395 jlong id, |
369 jint type, | 396 jint type, |
370 jboolean get_folders, | 397 jboolean get_folders, |
371 jboolean get_bookmarks, | 398 jboolean get_bookmarks, |
372 jobject j_result_obj) { | 399 jobject j_result_obj) { |
373 DCHECK(IsLoaded()); | 400 DCHECK(IsLoaded()); |
374 | 401 |
375 const BookmarkNode* parent = GetNodeByID(id, type); | 402 const BookmarkNode* parent = GetNodeByID(id, type); |
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
543 const BookmarkNode* node = folder; | 570 const BookmarkNode* node = folder; |
544 while (node) { | 571 while (node) { |
545 ExtractBookmarkNodeInformation(node, j_result_obj); | 572 ExtractBookmarkNodeInformation(node, j_result_obj); |
546 node = GetParentNode(node); | 573 node = GetParentNode(node); |
547 } | 574 } |
548 | 575 |
549 Java_BookmarksCallback_onBookmarksFolderHierarchyAvailable( | 576 Java_BookmarksCallback_onBookmarksFolderHierarchyAvailable( |
550 env, j_callback_obj, j_folder_id_obj, j_result_obj); | 577 env, j_callback_obj, j_folder_id_obj, j_result_obj); |
551 } | 578 } |
552 | 579 |
580 ScopedJavaLocalRef<jobject> BookmarksBridge::AddFolder(JNIEnv* env, | |
581 jobject obj, | |
582 jobject j_parent_id_obj, | |
583 jint index, | |
584 jstring j_title) { | |
585 DCHECK(IsLoaded()); | |
586 long bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj); | |
587 int type = JavaBookmarkIdGetType(env, j_parent_id_obj); | |
588 const BookmarkNode* parent = GetNodeByID(bookmark_id, type); | |
589 | |
590 const BookmarkNode* new_node = bookmark_model_->AddFolder( | |
591 parent, index, base::android::ConvertJavaStringToUTF16(env, j_title)); | |
592 if (!new_node) { | |
593 NOTREACHED(); | |
594 return ScopedJavaLocalRef<jobject>(); | |
595 } | |
596 ScopedJavaLocalRef<jobject> new_java_obj = | |
597 Java_BookmarksBridge_createBookmarkId( | |
598 env, new_node->id(), GetBookmarkType(new_node)); | |
599 return new_java_obj; | |
600 } | |
601 | |
553 void BookmarksBridge::DeleteBookmark(JNIEnv* env, | 602 void BookmarksBridge::DeleteBookmark(JNIEnv* env, |
554 jobject obj, | 603 jobject obj, |
555 jobject j_bookmark_id_obj) { | 604 jobject j_bookmark_id_obj) { |
556 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 605 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
557 DCHECK(IsLoaded()); | 606 DCHECK(IsLoaded()); |
558 | 607 |
559 long bookmark_id = JavaBookmarkIdGetId(env, j_bookmark_id_obj); | 608 long bookmark_id = JavaBookmarkIdGetId(env, j_bookmark_id_obj); |
560 int type = JavaBookmarkIdGetType(env, j_bookmark_id_obj); | 609 int type = JavaBookmarkIdGetType(env, j_bookmark_id_obj); |
561 const BookmarkNode* node = GetNodeByID(bookmark_id, type); | 610 const BookmarkNode* node = GetNodeByID(bookmark_id, type); |
562 if (!IsEditable(node)) { | 611 if (!IsEditable(node)) { |
(...skipping 23 matching lines...) Expand all Loading... | |
586 if (!IsEditable(node)) { | 635 if (!IsEditable(node)) { |
587 NOTREACHED(); | 636 NOTREACHED(); |
588 return; | 637 return; |
589 } | 638 } |
590 bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj); | 639 bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj); |
591 type = JavaBookmarkIdGetType(env, j_parent_id_obj); | 640 type = JavaBookmarkIdGetType(env, j_parent_id_obj); |
592 const BookmarkNode* new_parent_node = GetNodeByID(bookmark_id, type); | 641 const BookmarkNode* new_parent_node = GetNodeByID(bookmark_id, type); |
593 bookmark_model_->Move(node, new_parent_node, index); | 642 bookmark_model_->Move(node, new_parent_node, index); |
594 } | 643 } |
595 | 644 |
645 ScopedJavaLocalRef<jobject> BookmarksBridge::AddBookmark( | |
646 JNIEnv* env, | |
647 jobject obj, | |
648 jobject j_parent_id_obj, | |
649 jint index, | |
650 jstring j_title, | |
651 jstring j_url) { | |
652 DCHECK(IsLoaded()); | |
653 long bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj); | |
Kibeom Kim (inactive)
2014/09/17 19:28:08
maybe parent_id?
| |
654 int type = JavaBookmarkIdGetType(env, j_parent_id_obj); | |
655 const BookmarkNode* parent = GetNodeByID(bookmark_id, type); | |
656 | |
657 const BookmarkNode* new_node = bookmark_model_->AddURL( | |
658 parent, | |
659 index, | |
660 base::android::ConvertJavaStringToUTF16(env, j_title), | |
661 GURL(base::android::ConvertJavaStringToUTF16(env, j_url))); | |
Kibeom Kim (inactive)
2014/09/17 19:28:08
Existing code calls ParseAndMaybeAppendScheme in c
| |
662 if (!new_node) { | |
663 NOTREACHED(); | |
664 return ScopedJavaLocalRef<jobject>(); | |
665 } | |
666 ScopedJavaLocalRef<jobject> new_java_obj = | |
667 Java_BookmarksBridge_createBookmarkId( | |
668 env, new_node->id(), GetBookmarkType(new_node)); | |
669 return new_java_obj; | |
670 } | |
671 | |
596 ScopedJavaLocalRef<jobject> BookmarksBridge::CreateJavaBookmark( | 672 ScopedJavaLocalRef<jobject> BookmarksBridge::CreateJavaBookmark( |
597 const BookmarkNode* node) { | 673 const BookmarkNode* node) { |
598 JNIEnv* env = AttachCurrentThread(); | 674 JNIEnv* env = AttachCurrentThread(); |
599 | 675 |
600 const BookmarkNode* parent = GetParentNode(node); | 676 const BookmarkNode* parent = GetParentNode(node); |
601 int64 parent_id = parent ? parent->id() : -1; | 677 int64 parent_id = parent ? parent->id() : -1; |
602 | 678 |
603 std::string url; | 679 std::string url; |
604 if (node->is_url()) | 680 if (node->is_url()) |
605 url = node->url().spec(); | 681 url = node->url().spec(); |
(...skipping 265 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
871 BookmarkModelChanged(); | 947 BookmarkModelChanged(); |
872 } | 948 } |
873 | 949 |
874 void BookmarksBridge::PartnerShimLoaded(PartnerBookmarksShim* shim) { | 950 void BookmarksBridge::PartnerShimLoaded(PartnerBookmarksShim* shim) { |
875 NotifyIfDoneLoading(); | 951 NotifyIfDoneLoading(); |
876 } | 952 } |
877 | 953 |
878 void BookmarksBridge::ShimBeingDeleted(PartnerBookmarksShim* shim) { | 954 void BookmarksBridge::ShimBeingDeleted(PartnerBookmarksShim* shim) { |
879 partner_bookmarks_shim_ = NULL; | 955 partner_bookmarks_shim_ = NULL; |
880 } | 956 } |
OLD | NEW |