[Enhanced Bookmark]Upstream image fetching code in android
[chromium-blink-merge.git] / chrome / browser / enhanced_bookmarks / android / enhanced_bookmarks_bridge.h
blobec6f54e03b30cb6cd7b637674c976d9640a97c49
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 BookmarkImageService;
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 base::android::ScopedJavaLocalRef<jstring> GetBookmarkDescription(
34 JNIEnv* env,
35 jobject obj,
36 jlong id,
37 jint type);
38 void SetBookmarkDescription(JNIEnv* env,
39 jobject obj,
40 jlong id,
41 jint type,
42 jstring description);
44 base::android::ScopedJavaLocalRef<jobjectArray> GetFiltersForBookmark(
45 JNIEnv* env,
46 jobject obj,
47 jlong id,
48 jint type);
49 void GetBookmarksForFilter(JNIEnv* env,
50 jobject obj,
51 jstring filter,
52 jobject j_result_obj);
53 base::android::ScopedJavaLocalRef<jobjectArray> GetFilters(JNIEnv* env,
54 jobject obj);
56 base::android::ScopedJavaLocalRef<jobject> AddFolder(JNIEnv* env,
57 jobject obj,
58 jobject j_parent_id_obj,
59 jint index,
60 jstring j_title);
62 void MoveBookmark(JNIEnv* env,
63 jobject obj,
64 jobject j_bookmark_id_obj,
65 jobject j_parent_id_obj);
67 base::android::ScopedJavaLocalRef<jobject> AddBookmark(
68 JNIEnv* env,
69 jobject obj,
70 jobject j_parent_id_obj,
71 jint index,
72 jstring j_title,
73 jstring j_url);
74 void SendSearchRequest(JNIEnv* env, jobject obj, jstring j_query);
76 base::android::ScopedJavaLocalRef<jobject> GetSearchResults(JNIEnv* env,
77 jobject obj,
78 jstring j_query);
80 // BookmarkServerServiceObserver
81 // Called on changes to cluster data or search results are returned.
82 void OnChange(BookmarkServerService* service) override;
84 private:
85 bool IsEditable(const bookmarks::BookmarkNode* node) const;
87 JavaObjectWeakGlobalRef weak_java_ref_;
88 EnhancedBookmarkModel* enhanced_bookmark_model_; // weak
89 BookmarkServerClusterService* cluster_service_; // weak
90 BookmarkImageService* bookmark_image_service_; // weak
91 scoped_ptr<BookmarkServerSearchService> search_service_;
92 Profile* profile_; // weak
93 DISALLOW_COPY_AND_ASSIGN(EnhancedBookmarksBridge);
96 bool RegisterEnhancedBookmarksBridge(JNIEnv* env);
98 } // namespace android
99 } // namespace enhanced_bookmarks
101 #endif // CHROME_BROWSER_ENHANCED_BOOKMARKS_ANDROID_ENHANCED_BOOKMARKS_BRIDGE_H_