1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #ifndef CHROME_BROWSER_ENHANCED_BOOKMARKS_ANDROID_ENHANCED_BOOKMARKS_BRIDGE_H_
6 #define CHROME_BROWSER_ENHANCED_BOOKMARKS_ANDROID_ENHANCED_BOOKMARKS_BRIDGE_H_
8 #include "base/android/jni_android.h"
9 #include "base/android/jni_weak_ref.h"
10 #include "chrome/browser/profiles/profile.h"
11 #include "components/bookmarks/browser/bookmark_model.h"
12 #include "components/enhanced_bookmarks/bookmark_server_search_service.h"
13 #include "components/enhanced_bookmarks/bookmark_server_service.h"
15 namespace enhanced_bookmarks
{
17 class BookmarkServerClusterService
;
18 class BookmarkImageServiceAndroid
;
22 class EnhancedBookmarksBridge
: public BookmarkServerServiceObserver
{
24 EnhancedBookmarksBridge(JNIEnv
* env
, jobject obj
, Profile
* profile
);
25 ~EnhancedBookmarksBridge() override
;
26 void Destroy(JNIEnv
*, jobject
);
28 void SalientImageForUrl(JNIEnv
* env
,
33 void FetchImageForTab(JNIEnv
* env
, jobject obj
, jobject j_web_contents
);
35 base::android::ScopedJavaLocalRef
<jstring
> GetBookmarkDescription(
40 void SetBookmarkDescription(JNIEnv
* env
,
46 base::android::ScopedJavaLocalRef
<jobjectArray
> GetFiltersForBookmark(
51 void GetBookmarksForFilter(JNIEnv
* env
,
54 jobject j_result_obj
);
55 base::android::ScopedJavaLocalRef
<jobjectArray
> GetFilters(JNIEnv
* env
,
58 base::android::ScopedJavaLocalRef
<jobject
> AddFolder(JNIEnv
* env
,
60 jobject j_parent_id_obj
,
64 void MoveBookmark(JNIEnv
* env
,
66 jobject j_bookmark_id_obj
,
67 jobject j_parent_id_obj
);
69 base::android::ScopedJavaLocalRef
<jobject
> AddBookmark(
72 jobject j_parent_id_obj
,
76 void SendSearchRequest(JNIEnv
* env
, jobject obj
, jstring j_query
);
78 base::android::ScopedJavaLocalRef
<jobject
> GetSearchResults(JNIEnv
* env
,
82 // BookmarkServerServiceObserver
83 // Called on changes to cluster data or search results are returned.
84 void OnChange(BookmarkServerService
* service
) override
;
87 bool IsEditable(const bookmarks::BookmarkNode
* node
) const;
89 JavaObjectWeakGlobalRef weak_java_ref_
;
90 EnhancedBookmarkModel
* enhanced_bookmark_model_
; // weak
91 BookmarkServerClusterService
* cluster_service_
; // weak
92 BookmarkImageServiceAndroid
* bookmark_image_service_
; // weak
93 scoped_ptr
<BookmarkServerSearchService
> search_service_
;
94 Profile
* profile_
; // weak
95 DISALLOW_COPY_AND_ASSIGN(EnhancedBookmarksBridge
);
98 bool RegisterEnhancedBookmarksBridge(JNIEnv
* env
);
100 } // namespace android
101 } // namespace enhanced_bookmarks
103 #endif // CHROME_BROWSER_ENHANCED_BOOKMARKS_ANDROID_ENHANCED_BOOKMARKS_BRIDGE_H_