Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(49)

Side by Side Diff: chrome/browser/android/bookmarks/bookmark_bridge.cc

Issue 1935413003: [Android Bookmark] Remove all bookmark section from bookmark manager (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: make a histogram obsolete Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/bookmark_bridge.h" 5 #include "chrome/browser/android/bookmarks/bookmark_bridge.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include "base/android/jni_array.h" 10 #include "base/android/jni_array.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 using bookmarks::android::JavaBookmarkIdGetId; 45 using bookmarks::android::JavaBookmarkIdGetId;
46 using bookmarks::android::JavaBookmarkIdGetType; 46 using bookmarks::android::JavaBookmarkIdGetType;
47 using bookmarks::BookmarkModel; 47 using bookmarks::BookmarkModel;
48 using bookmarks::BookmarkNode; 48 using bookmarks::BookmarkNode;
49 using bookmarks::BookmarkPermanentNode; 49 using bookmarks::BookmarkPermanentNode;
50 using bookmarks::BookmarkType; 50 using bookmarks::BookmarkType;
51 using content::BrowserThread; 51 using content::BrowserThread;
52 52
53 namespace { 53 namespace {
54 54
55 class BookmarkNodeCreationTimeCompareFunctor {
56 public:
57 bool operator()(const BookmarkNode* lhs, const BookmarkNode* rhs) {
58 return lhs->date_added().ToJavaTime() > rhs->date_added().ToJavaTime();
59 }
60 };
61
62 class BookmarkTitleComparer { 55 class BookmarkTitleComparer {
63 public: 56 public:
64 explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge, 57 explicit BookmarkTitleComparer(BookmarkBridge* bookmark_bridge,
65 const icu::Collator* collator) 58 const icu::Collator* collator)
66 : bookmark_bridge_(bookmark_bridge), 59 : bookmark_bridge_(bookmark_bridge),
67 collator_(collator) {} 60 collator_(collator) {}
68 61
69 bool operator()(const BookmarkNode* lhs, const BookmarkNode* rhs) { 62 bool operator()(const BookmarkNode* lhs, const BookmarkNode* rhs) {
70 if (collator_) { 63 if (collator_) {
71 return base::i18n::CompareString16WithCollator( 64 return base::i18n::CompareString16WithCollator(
(...skipping 372 matching lines...) Expand 10 before | Expand all | Expand 10 after
444 jint index) { 437 jint index) {
445 DCHECK(IsLoaded()); 438 DCHECK(IsLoaded());
446 439
447 const BookmarkNode* parent = GetNodeByID(id, type); 440 const BookmarkNode* parent = GetNodeByID(id, type);
448 DCHECK(parent); 441 DCHECK(parent);
449 const BookmarkNode* child = parent->GetChild(index); 442 const BookmarkNode* child = parent->GetChild(index);
450 return JavaBookmarkIdCreateBookmarkId( 443 return JavaBookmarkIdCreateBookmarkId(
451 env, child->id(), GetBookmarkType(child)); 444 env, child->id(), GetBookmarkType(child));
452 } 445 }
453 446
454 void BookmarkBridge::GetAllBookmarkIDsOrderedByCreationDate(
455 JNIEnv* env,
456 const JavaParamRef<jobject>& obj,
457 const JavaParamRef<jobject>& j_result_obj) {
458 DCHECK(IsLoaded());
459 std::list<const BookmarkNode*> folders;
460 std::vector<const BookmarkNode*> result;
461 folders.push_back(bookmark_model_->root_node());
462
463 for (std::list<const BookmarkNode*>::iterator folder_iter = folders.begin();
464 folder_iter != folders.end(); ++folder_iter) {
465 if (*folder_iter == NULL)
466 continue;
467
468 std::list<const BookmarkNode*>::iterator insert_iter = folder_iter;
469 ++insert_iter;
470
471 for (int i = 0; i < (*folder_iter)->child_count(); ++i) {
472 const BookmarkNode* child = (*folder_iter)->GetChild(i);
473 if (!IsReachable(child) ||
474 bookmarks::IsDescendantOf(
475 child, managed_bookmark_service_->managed_node()) ||
476 bookmarks::IsDescendantOf(
477 child, managed_bookmark_service_->supervised_node())) {
478 continue;
479 }
480
481 if (child->is_folder()) {
482 insert_iter = folders.insert(insert_iter, child);
483 } else {
484 result.push_back(child);
485 }
486 }
487 }
488
489 std::sort(
490 result.begin(), result.end(), BookmarkNodeCreationTimeCompareFunctor());
491
492 for (std::vector<const BookmarkNode*>::const_iterator iter = result.begin();
493 iter != result.end();
494 ++iter) {
495 const BookmarkNode* bookmark = *iter;
496 Java_BookmarkBridge_addToBookmarkIdList(
497 env, j_result_obj, bookmark->id(), GetBookmarkType(bookmark));
498 }
499 }
500
501 void BookmarkBridge::SetBookmarkTitle(JNIEnv* env, 447 void BookmarkBridge::SetBookmarkTitle(JNIEnv* env,
502 const JavaParamRef<jobject>& obj, 448 const JavaParamRef<jobject>& obj,
503 jlong id, 449 jlong id,
504 jint type, 450 jint type,
505 const JavaParamRef<jstring>& j_title) { 451 const JavaParamRef<jstring>& j_title) {
506 DCHECK(IsLoaded()); 452 DCHECK(IsLoaded());
507 const BookmarkNode* bookmark = GetNodeByID(id, type); 453 const BookmarkNode* bookmark = GetNodeByID(id, type);
508 const base::string16 title = 454 const base::string16 title =
509 base::android::ConvertJavaStringToUTF16(env, j_title); 455 base::android::ConvertJavaStringToUTF16(env, j_title);
510 456
(...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after
1108 BookmarkModelChanged(); 1054 BookmarkModelChanged();
1109 } 1055 }
1110 1056
1111 void BookmarkBridge::PartnerShimLoaded(PartnerBookmarksShim* shim) { 1057 void BookmarkBridge::PartnerShimLoaded(PartnerBookmarksShim* shim) {
1112 NotifyIfDoneLoading(); 1058 NotifyIfDoneLoading();
1113 } 1059 }
1114 1060
1115 void BookmarkBridge::ShimBeingDeleted(PartnerBookmarksShim* shim) { 1061 void BookmarkBridge::ShimBeingDeleted(PartnerBookmarksShim* shim) {
1116 partner_bookmarks_shim_ = NULL; 1062 partner_bookmarks_shim_ = NULL;
1117 } 1063 }
OLDNEW
« no previous file with comments | « chrome/browser/android/bookmarks/bookmark_bridge.h ('k') | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698