Add ENABLE_MEDIA_ROUTER define to builds other than Android and iOS.
[chromium-blink-merge.git] / chrome / browser / enhanced_bookmarks / android / enhanced_bookmarks_bridge.h
blobae4e7efa5f428089dfd4c06d823e4016fff36d28
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;
20 namespace android {
22 class EnhancedBookmarksBridge : public BookmarkServerServiceObserver {
23 public:
24 EnhancedBookmarksBridge(JNIEnv* env, jobject obj, Profile* profile);
25 ~EnhancedBookmarksBridge() override;
26 void Destroy(JNIEnv*, jobject);
28 void SalientImageForUrl(JNIEnv* env,
29 jobject obj,
30 jstring j_url,
31 jobject j_callback);
33 void FetchImageForTab(JNIEnv* env, jobject obj, jobject j_web_contents);
35 base::android::ScopedJavaLocalRef<jstring> GetBookmarkDescription(
36 JNIEnv* env,
37 jobject obj,
38 jlong id,
39 jint type);
40 void SetBookmarkDescription(JNIEnv* env,
41 jobject obj,
42 jlong id,
43 jint type,
44 jstring description);
46 base::android::ScopedJavaLocalRef<jobjectArray> GetFiltersForBookmark(
47 JNIEnv* env,
48 jobject obj,
49 jlong id,
50 jint type);
51 void GetBookmarksForFilter(JNIEnv* env,
52 jobject obj,
53 jstring filter,
54 jobject j_result_obj);
55 base::android::ScopedJavaLocalRef<jobjectArray> GetFilters(JNIEnv* env,
56 jobject obj);
58 base::android::ScopedJavaLocalRef<jobject> AddFolder(JNIEnv* env,
59 jobject obj,
60 jobject j_parent_id_obj,
61 jint index,
62 jstring j_title);
64 void MoveBookmark(JNIEnv* env,
65 jobject obj,
66 jobject j_bookmark_id_obj,
67 jobject j_parent_id_obj);
69 base::android::ScopedJavaLocalRef<jobject> AddBookmark(
70 JNIEnv* env,
71 jobject obj,
72 jobject j_parent_id_obj,
73 jint index,
74 jstring j_title,
75 jstring j_url);
76 void SendSearchRequest(JNIEnv* env, jobject obj, jstring j_query);
78 base::android::ScopedJavaLocalRef<jobject> GetSearchResults(JNIEnv* env,
79 jobject obj,
80 jstring j_query);
82 // BookmarkServerServiceObserver
83 // Called on changes to cluster data or search results are returned.
84 void OnChange(BookmarkServerService* service) override;
86 private:
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_