| 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 |