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_array.h" | 7 #include "base/android/jni_array.h" |
8 #include "base/android/jni_string.h" | 8 #include "base/android/jni_string.h" |
9 #include "base/containers/stack_container.h" | 9 #include "base/containers/stack_container.h" |
10 #include "base/i18n/string_compare.h" | 10 #include "base/i18n/string_compare.h" |
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
90 | 90 |
91 } // namespace | 91 } // namespace |
92 | 92 |
93 BookmarksBridge::BookmarksBridge(JNIEnv* env, | 93 BookmarksBridge::BookmarksBridge(JNIEnv* env, |
94 jobject obj, | 94 jobject obj, |
95 jobject j_profile) | 95 jobject j_profile) |
96 : weak_java_ref_(env, obj), | 96 : weak_java_ref_(env, obj), |
97 bookmark_model_(NULL), | 97 bookmark_model_(NULL), |
98 client_(NULL), | 98 client_(NULL), |
99 partner_bookmarks_shim_(NULL) { | 99 partner_bookmarks_shim_(NULL) { |
100 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 100 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
101 profile_ = ProfileAndroid::FromProfileAndroid(j_profile); | 101 profile_ = ProfileAndroid::FromProfileAndroid(j_profile); |
102 bookmark_model_ = BookmarkModelFactory::GetForProfile(profile_); | 102 bookmark_model_ = BookmarkModelFactory::GetForProfile(profile_); |
103 client_ = ChromeBookmarkClientFactory::GetForProfile(profile_); | 103 client_ = ChromeBookmarkClientFactory::GetForProfile(profile_); |
104 | 104 |
105 // Registers the notifications we are interested. | 105 // Registers the notifications we are interested. |
106 bookmark_model_->AddObserver(this); | 106 bookmark_model_->AddObserver(this); |
107 | 107 |
108 // Create the partner Bookmarks shim as early as possible (but don't attach). | 108 // Create the partner Bookmarks shim as early as possible (but don't attach). |
109 partner_bookmarks_shim_ = PartnerBookmarksShim::BuildForBrowserContext( | 109 partner_bookmarks_shim_ = PartnerBookmarksShim::BuildForBrowserContext( |
110 chrome::GetBrowserContextRedirectedInIncognito(profile_)); | 110 chrome::GetBrowserContextRedirectedInIncognito(profile_)); |
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
596 } | 596 } |
597 ScopedJavaLocalRef<jobject> new_java_obj = | 597 ScopedJavaLocalRef<jobject> new_java_obj = |
598 JavaBookmarkIdCreateBookmarkId( | 598 JavaBookmarkIdCreateBookmarkId( |
599 env, new_node->id(), GetBookmarkType(new_node)); | 599 env, new_node->id(), GetBookmarkType(new_node)); |
600 return new_java_obj; | 600 return new_java_obj; |
601 } | 601 } |
602 | 602 |
603 void BookmarksBridge::DeleteBookmark(JNIEnv* env, | 603 void BookmarksBridge::DeleteBookmark(JNIEnv* env, |
604 jobject obj, | 604 jobject obj, |
605 jobject j_bookmark_id_obj) { | 605 jobject j_bookmark_id_obj) { |
606 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 606 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
607 DCHECK(IsLoaded()); | 607 DCHECK(IsLoaded()); |
608 | 608 |
609 long bookmark_id = JavaBookmarkIdGetId(env, j_bookmark_id_obj); | 609 long bookmark_id = JavaBookmarkIdGetId(env, j_bookmark_id_obj); |
610 int type = JavaBookmarkIdGetType(env, j_bookmark_id_obj); | 610 int type = JavaBookmarkIdGetType(env, j_bookmark_id_obj); |
611 const BookmarkNode* node = GetNodeByID(bookmark_id, type); | 611 const BookmarkNode* node = GetNodeByID(bookmark_id, type); |
612 if (!IsEditable(node)) { | 612 if (!IsEditable(node)) { |
613 NOTREACHED(); | 613 NOTREACHED(); |
614 return; | 614 return; |
615 } | 615 } |
616 | 616 |
617 if (partner_bookmarks_shim_->IsPartnerBookmark(node)) { | 617 if (partner_bookmarks_shim_->IsPartnerBookmark(node)) { |
618 partner_bookmarks_shim_->RemoveBookmark(node); | 618 partner_bookmarks_shim_->RemoveBookmark(node); |
619 } else { | 619 } else { |
620 const BookmarkNode* parent_node = GetParentNode(node); | 620 const BookmarkNode* parent_node = GetParentNode(node); |
621 bookmark_model_->Remove(parent_node, parent_node->GetIndexOf(node)); | 621 bookmark_model_->Remove(parent_node, parent_node->GetIndexOf(node)); |
622 } | 622 } |
623 } | 623 } |
624 | 624 |
625 void BookmarksBridge::MoveBookmark(JNIEnv* env, | 625 void BookmarksBridge::MoveBookmark(JNIEnv* env, |
626 jobject obj, | 626 jobject obj, |
627 jobject j_bookmark_id_obj, | 627 jobject j_bookmark_id_obj, |
628 jobject j_parent_id_obj, | 628 jobject j_parent_id_obj, |
629 jint index) { | 629 jint index) { |
630 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 630 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
631 DCHECK(IsLoaded()); | 631 DCHECK(IsLoaded()); |
632 | 632 |
633 long bookmark_id = JavaBookmarkIdGetId(env, j_bookmark_id_obj); | 633 long bookmark_id = JavaBookmarkIdGetId(env, j_bookmark_id_obj); |
634 int type = JavaBookmarkIdGetType(env, j_bookmark_id_obj); | 634 int type = JavaBookmarkIdGetType(env, j_bookmark_id_obj); |
635 const BookmarkNode* node = GetNodeByID(bookmark_id, type); | 635 const BookmarkNode* node = GetNodeByID(bookmark_id, type); |
636 if (!IsEditable(node)) { | 636 if (!IsEditable(node)) { |
637 NOTREACHED(); | 637 NOTREACHED(); |
638 return; | 638 return; |
639 } | 639 } |
640 bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj); | 640 bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
703 NOTREACHED(); | 703 NOTREACHED(); |
704 return ScopedJavaLocalRef<jobject>(); | 704 return ScopedJavaLocalRef<jobject>(); |
705 } | 705 } |
706 ScopedJavaLocalRef<jobject> new_java_obj = | 706 ScopedJavaLocalRef<jobject> new_java_obj = |
707 JavaBookmarkIdCreateBookmarkId( | 707 JavaBookmarkIdCreateBookmarkId( |
708 env, new_node->id(), GetBookmarkType(new_node)); | 708 env, new_node->id(), GetBookmarkType(new_node)); |
709 return new_java_obj; | 709 return new_java_obj; |
710 } | 710 } |
711 | 711 |
712 void BookmarksBridge::Undo(JNIEnv* env, jobject obj) { | 712 void BookmarksBridge::Undo(JNIEnv* env, jobject obj) { |
713 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 713 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
714 DCHECK(IsLoaded()); | 714 DCHECK(IsLoaded()); |
715 BookmarkUndoService* undo_service = | 715 BookmarkUndoService* undo_service = |
716 BookmarkUndoServiceFactory::GetForProfile(profile_); | 716 BookmarkUndoServiceFactory::GetForProfile(profile_); |
717 UndoManager* undo_manager = undo_service->undo_manager(); | 717 UndoManager* undo_manager = undo_service->undo_manager(); |
718 undo_manager->Undo(); | 718 undo_manager->Undo(); |
719 } | 719 } |
720 | 720 |
721 void BookmarksBridge::StartGroupingUndos(JNIEnv* env, jobject obj) { | 721 void BookmarksBridge::StartGroupingUndos(JNIEnv* env, jobject obj) { |
722 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 722 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
723 DCHECK(IsLoaded()); | 723 DCHECK(IsLoaded()); |
724 DCHECK(!grouped_bookmark_actions_.get()); // shouldn't have started already | 724 DCHECK(!grouped_bookmark_actions_.get()); // shouldn't have started already |
725 grouped_bookmark_actions_.reset( | 725 grouped_bookmark_actions_.reset( |
726 new bookmarks::ScopedGroupBookmarkActions(bookmark_model_)); | 726 new bookmarks::ScopedGroupBookmarkActions(bookmark_model_)); |
727 } | 727 } |
728 | 728 |
729 void BookmarksBridge::EndGroupingUndos(JNIEnv* env, jobject obj) { | 729 void BookmarksBridge::EndGroupingUndos(JNIEnv* env, jobject obj) { |
730 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 730 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
731 DCHECK(IsLoaded()); | 731 DCHECK(IsLoaded()); |
732 DCHECK(grouped_bookmark_actions_.get()); // should only call after start | 732 DCHECK(grouped_bookmark_actions_.get()); // should only call after start |
733 grouped_bookmark_actions_.reset(); | 733 grouped_bookmark_actions_.reset(); |
734 } | 734 } |
735 | 735 |
736 base::string16 BookmarksBridge::GetTitle(const BookmarkNode* node) const { | 736 base::string16 BookmarksBridge::GetTitle(const BookmarkNode* node) const { |
737 if (partner_bookmarks_shim_->IsPartnerBookmark(node)) | 737 if (partner_bookmarks_shim_->IsPartnerBookmark(node)) |
738 return partner_bookmarks_shim_->GetTitle(node); | 738 return partner_bookmarks_shim_->GetTitle(node); |
739 | 739 |
740 if (node == bookmark_model_->bookmark_bar_node() | 740 if (node == bookmark_model_->bookmark_bar_node() |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1034 BookmarkModelChanged(); | 1034 BookmarkModelChanged(); |
1035 } | 1035 } |
1036 | 1036 |
1037 void BookmarksBridge::PartnerShimLoaded(PartnerBookmarksShim* shim) { | 1037 void BookmarksBridge::PartnerShimLoaded(PartnerBookmarksShim* shim) { |
1038 NotifyIfDoneLoading(); | 1038 NotifyIfDoneLoading(); |
1039 } | 1039 } |
1040 | 1040 |
1041 void BookmarksBridge::ShimBeingDeleted(PartnerBookmarksShim* shim) { | 1041 void BookmarksBridge::ShimBeingDeleted(PartnerBookmarksShim* shim) { |
1042 partner_bookmarks_shim_ = NULL; | 1042 partner_bookmarks_shim_ = NULL; |
1043 } | 1043 } |
OLD | NEW |