Chromium Code Reviews| 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 |