diff options
Diffstat (limited to 'chrome/browser/android/bookmarks')
-rw-r--r-- | chrome/browser/android/bookmarks/bookmarks_bridge.cc | 28 | ||||
-rw-r--r-- | chrome/browser/android/bookmarks/bookmarks_bridge.h | 11 |
2 files changed, 39 insertions, 0 deletions
diff --git a/chrome/browser/android/bookmarks/bookmarks_bridge.cc b/chrome/browser/android/bookmarks/bookmarks_bridge.cc index fe7c99b..6dcb559 100644 --- a/chrome/browser/android/bookmarks/bookmarks_bridge.cc +++ b/chrome/browser/android/bookmarks/bookmarks_bridge.cc @@ -16,9 +16,13 @@ #include "chrome/browser/profiles/profile_android.h" #include "chrome/browser/profiles/profile_manager.h" #include "chrome/browser/signin/signin_manager_factory.h" +#include "chrome/browser/undo/bookmark_undo_service.h" +#include "chrome/browser/undo/bookmark_undo_service_factory.h" +#include "chrome/browser/undo/undo_manager.h" #include "chrome/common/pref_names.h" #include "components/bookmarks/browser/bookmark_model.h" #include "components/bookmarks/browser/bookmark_utils.h" +#include "components/bookmarks/browser/scoped_group_bookmark_actions.h" #include "components/bookmarks/common/android/bookmark_type.h" #include "components/signin/core/browser/signin_manager.h" #include "content/public/browser/browser_thread.h" @@ -669,6 +673,30 @@ ScopedJavaLocalRef<jobject> BookmarksBridge::AddBookmark( return new_java_obj; } +void BookmarksBridge::Undo(JNIEnv* env, jobject obj) { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(IsLoaded()); + BookmarkUndoService* undo_service = + BookmarkUndoServiceFactory::GetForProfile(profile_); + UndoManager* undo_manager = undo_service->undo_manager(); + undo_manager->Undo(); +} + +void BookmarksBridge::StartGroupingUndos(JNIEnv* env, jobject obj) { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(IsLoaded()); + DCHECK(!grouped_bookmark_actions_.get()); // shouldn't have started already + grouped_bookmark_actions_.reset( + new bookmarks::ScopedGroupBookmarkActions(bookmark_model_)); +} + +void BookmarksBridge::EndGroupingUndos(JNIEnv* env, jobject obj) { + DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); + DCHECK(IsLoaded()); + DCHECK(grouped_bookmark_actions_.get()); // should only call after start + grouped_bookmark_actions_.reset(); +} + ScopedJavaLocalRef<jobject> BookmarksBridge::CreateJavaBookmark( const BookmarkNode* node) { JNIEnv* env = AttachCurrentThread(); diff --git a/chrome/browser/android/bookmarks/bookmarks_bridge.h b/chrome/browser/android/bookmarks/bookmarks_bridge.h index 91fc2f0..8a14d63 100644 --- a/chrome/browser/android/bookmarks/bookmarks_bridge.h +++ b/chrome/browser/android/bookmarks/bookmarks_bridge.h @@ -16,6 +16,10 @@ #include "components/bookmarks/browser/base_bookmark_model_observer.h" #include "components/bookmarks/common/android/bookmark_id.h" +namespace bookmarks { +class ScopedGroupBookmarkActions; +} + class Profile; // The delegate to fetch bookmarks information for the Android native @@ -130,6 +134,12 @@ class BookmarksBridge : public BaseBookmarkModelObserver, jstring j_title, jstring j_url); + void Undo(JNIEnv* env, jobject obj); + + void StartGroupingUndos(JNIEnv* env, jobject obj); + + void EndGroupingUndos(JNIEnv* env, jobject obj); + private: virtual ~BookmarksBridge(); @@ -189,6 +199,7 @@ class BookmarksBridge : public BaseBookmarkModelObserver, JavaObjectWeakGlobalRef weak_java_ref_; BookmarkModel* bookmark_model_; // weak ChromeBookmarkClient* client_; // weak + scoped_ptr<bookmarks::ScopedGroupBookmarkActions> grouped_bookmark_actions_; // Information about the Partner bookmarks (must check for IsLoaded()). // This is owned by profile. |