Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(474)

Side by Side Diff: chrome/browser/android/bookmarks/bookmarks_bridge.h

Issue 1708433002: Move BookmarksBridge into package with other bookmarks classes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebased Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #ifndef CHROME_BROWSER_ANDROID_BOOKMARKS_BOOKMARKS_BRIDGE_H_
6 #define CHROME_BROWSER_ANDROID_BOOKMARKS_BOOKMARKS_BRIDGE_H_
7
8 #include <jni.h>
9
10 #include "base/android/jni_android.h"
11 #include "base/android/jni_weak_ref.h"
12 #include "base/compiler_specific.h"
13 #include "base/macros.h"
14 #include "chrome/browser/android/bookmarks/partner_bookmarks_shim.h"
15 #include "components/bookmarks/browser/base_bookmark_model_observer.h"
16 #include "components/bookmarks/common/android/bookmark_id.h"
17 #include "components/prefs/pref_change_registrar.h"
18
19 namespace bookmarks {
20 class BookmarkModel;
21 class ManagedBookmarkService;
22 class ScopedGroupBookmarkActions;
23 }
24
25 class Profile;
26
27 // The delegate to fetch bookmarks information for the Android native
28 // bookmark page. This fetches the bookmarks, title, urls, folder
29 // hierarchy.
30 class BookmarksBridge : public bookmarks::BaseBookmarkModelObserver,
31 public PartnerBookmarksShim::Observer {
32 public:
33 BookmarksBridge(JNIEnv* env, jobject obj, jobject j_profile);
34 void Destroy(JNIEnv*, const base::android::JavaParamRef<jobject>&);
35
36 static bool RegisterBookmarksBridge(JNIEnv* env);
37
38 bool IsDoingExtensiveChanges(JNIEnv* env,
39 const base::android::JavaParamRef<jobject>& obj);
40
41 jboolean IsEditBookmarksEnabled(
42 JNIEnv* env,
43 const base::android::JavaParamRef<jobject>& obj);
44
45 void LoadEmptyPartnerBookmarkShimForTesting(
46 JNIEnv* env,
47 const base::android::JavaParamRef<jobject>& obj);
48
49 base::android::ScopedJavaLocalRef<jobject> GetBookmarkByID(
50 JNIEnv* env,
51 const base::android::JavaParamRef<jobject>& obj,
52 jlong id,
53 jint type);
54
55 void GetPermanentNodeIDs(
56 JNIEnv* env,
57 const base::android::JavaParamRef<jobject>& obj,
58 const base::android::JavaParamRef<jobject>& j_result_obj);
59
60 void GetTopLevelFolderParentIDs(
61 JNIEnv* env,
62 const base::android::JavaParamRef<jobject>& obj,
63 const base::android::JavaParamRef<jobject>& j_result_obj);
64
65 void GetTopLevelFolderIDs(
66 JNIEnv* env,
67 const base::android::JavaParamRef<jobject>& obj,
68 jboolean get_special,
69 jboolean get_normal,
70 const base::android::JavaParamRef<jobject>& j_result_obj);
71
72 void GetAllFoldersWithDepths(
73 JNIEnv* env,
74 const base::android::JavaParamRef<jobject>& obj,
75 const base::android::JavaParamRef<jobject>& j_folders_obj,
76 const base::android::JavaParamRef<jobject>& j_depths_obj);
77
78 base::android::ScopedJavaLocalRef<jobject> GetRootFolderId(
79 JNIEnv* env,
80 const base::android::JavaParamRef<jobject>& obj);
81
82 base::android::ScopedJavaLocalRef<jobject> GetMobileFolderId(
83 JNIEnv* env,
84 const base::android::JavaParamRef<jobject>& obj);
85
86 base::android::ScopedJavaLocalRef<jobject> GetOtherFolderId(
87 JNIEnv* env,
88 const base::android::JavaParamRef<jobject>& obj);
89
90 base::android::ScopedJavaLocalRef<jobject> GetDesktopFolderId(
91 JNIEnv* env,
92 const base::android::JavaParamRef<jobject>& obj);
93
94 void GetChildIDs(JNIEnv* env,
95 const base::android::JavaParamRef<jobject>& obj,
96 jlong id,
97 jint type,
98 jboolean get_folders,
99 jboolean get_bookmarks,
100 const base::android::JavaParamRef<jobject>& j_result_obj);
101
102 jint GetChildCount(JNIEnv* env,
103 const base::android::JavaParamRef<jobject>& obj,
104 jlong id,
105 jint type);
106
107 base::android::ScopedJavaLocalRef<jobject> GetChildAt(
108 JNIEnv* env,
109 const base::android::JavaParamRef<jobject>& obj,
110 jlong id,
111 jint type,
112 jint index);
113
114 void GetAllBookmarkIDsOrderedByCreationDate(
115 JNIEnv* env,
116 const base::android::JavaParamRef<jobject>& obj,
117 const base::android::JavaParamRef<jobject>& j_result_obj);
118
119 void SetBookmarkTitle(JNIEnv* env,
120 const base::android::JavaParamRef<jobject>& obj,
121 jlong id,
122 jint type,
123 const base::android::JavaParamRef<jstring>& title);
124
125 void SetBookmarkUrl(JNIEnv* env,
126 const base::android::JavaParamRef<jobject>& obj,
127 jlong id,
128 jint type,
129 const base::android::JavaParamRef<jstring>& url);
130
131 bool DoesBookmarkExist(JNIEnv* env,
132 const base::android::JavaParamRef<jobject>& obj,
133 jlong id,
134 jint type);
135
136 void GetBookmarksForFolder(
137 JNIEnv* env,
138 const base::android::JavaParamRef<jobject>& obj,
139 const base::android::JavaParamRef<jobject>& j_folder_id_obj,
140 const base::android::JavaParamRef<jobject>& j_callback_obj,
141 const base::android::JavaParamRef<jobject>& j_result_obj);
142
143 jboolean IsFolderVisible(JNIEnv* env,
144 const base::android::JavaParamRef<jobject>& obj,
145 jlong id,
146 jint type);
147
148 void GetCurrentFolderHierarchy(
149 JNIEnv* env,
150 const base::android::JavaParamRef<jobject>& obj,
151 const base::android::JavaParamRef<jobject>& j_folder_id_obj,
152 const base::android::JavaParamRef<jobject>& j_callback_obj,
153 const base::android::JavaParamRef<jobject>& j_result_obj);
154 void SearchBookmarks(JNIEnv* env,
155 const base::android::JavaParamRef<jobject>& obj,
156 const base::android::JavaParamRef<jobject>& j_list,
157 const base::android::JavaParamRef<jstring>& j_query,
158 jint max_results);
159
160 base::android::ScopedJavaLocalRef<jobject> AddFolder(
161 JNIEnv* env,
162 const base::android::JavaParamRef<jobject>& obj,
163 const base::android::JavaParamRef<jobject>& j_parent_id_obj,
164 jint index,
165 const base::android::JavaParamRef<jstring>& j_title);
166
167 void DeleteBookmark(
168 JNIEnv* env,
169 const base::android::JavaParamRef<jobject>& obj,
170 const base::android::JavaParamRef<jobject>& j_bookmark_id_obj);
171
172 void MoveBookmark(
173 JNIEnv* env,
174 const base::android::JavaParamRef<jobject>& obj,
175 const base::android::JavaParamRef<jobject>& j_bookmark_id_obj,
176 const base::android::JavaParamRef<jobject>& j_parent_id_obj,
177 jint index);
178
179 base::android::ScopedJavaLocalRef<jobject> AddBookmark(
180 JNIEnv* env,
181 const base::android::JavaParamRef<jobject>& obj,
182 const base::android::JavaParamRef<jobject>& j_parent_id_obj,
183 jint index,
184 const base::android::JavaParamRef<jstring>& j_title,
185 const base::android::JavaParamRef<jstring>& j_url);
186
187 void Undo(JNIEnv* env, const base::android::JavaParamRef<jobject>& obj);
188
189 void StartGroupingUndos(JNIEnv* env,
190 const base::android::JavaParamRef<jobject>& obj);
191
192 void EndGroupingUndos(JNIEnv* env,
193 const base::android::JavaParamRef<jobject>& obj);
194
195 base::string16 GetTitle(const bookmarks::BookmarkNode* node) const;
196
197 private:
198 ~BookmarksBridge() override;
199
200 base::android::ScopedJavaLocalRef<jobject> CreateJavaBookmark(
201 const bookmarks::BookmarkNode* node);
202 void ExtractBookmarkNodeInformation(const bookmarks::BookmarkNode* node,
203 jobject j_result_obj);
204 const bookmarks::BookmarkNode* GetNodeByID(long node_id, int type);
205 const bookmarks::BookmarkNode* GetFolderWithFallback(long folder_id,
206 int type);
207 bool IsEditBookmarksEnabled() const;
208 void EditBookmarksEnabledChanged();
209 // Returns whether |node| can be modified by the user.
210 bool IsEditable(const bookmarks::BookmarkNode* node) const;
211 // Returns whether |node| is a managed bookmark.
212 bool IsManaged(const bookmarks::BookmarkNode* node) const;
213 const bookmarks::BookmarkNode* GetParentNode(
214 const bookmarks::BookmarkNode* node);
215 int GetBookmarkType(const bookmarks::BookmarkNode* node);
216 bool IsReachable(const bookmarks::BookmarkNode* node) const;
217 bool IsLoaded() const;
218 bool IsFolderAvailable(const bookmarks::BookmarkNode* folder) const;
219 void NotifyIfDoneLoading();
220
221 // Override bookmarks::BaseBookmarkModelObserver.
222 // Called when there are changes to the bookmark model that don't trigger
223 // any of the other callback methods. For example, this is called when
224 // partner bookmarks change.
225 void BookmarkModelChanged() override;
226 void BookmarkModelLoaded(bookmarks::BookmarkModel* model,
227 bool ids_reassigned) override;
228 void BookmarkModelBeingDeleted(bookmarks::BookmarkModel* model) override;
229 void BookmarkNodeMoved(bookmarks::BookmarkModel* model,
230 const bookmarks::BookmarkNode* old_parent,
231 int old_index,
232 const bookmarks::BookmarkNode* new_parent,
233 int new_index) override;
234 void BookmarkNodeAdded(bookmarks::BookmarkModel* model,
235 const bookmarks::BookmarkNode* parent,
236 int index) override;
237 void BookmarkNodeRemoved(bookmarks::BookmarkModel* model,
238 const bookmarks::BookmarkNode* parent,
239 int old_index,
240 const bookmarks::BookmarkNode* node,
241 const std::set<GURL>& removed_urls) override;
242 void BookmarkAllUserNodesRemoved(bookmarks::BookmarkModel* model,
243 const std::set<GURL>& removed_urls) override;
244 void BookmarkNodeChanged(bookmarks::BookmarkModel* model,
245 const bookmarks::BookmarkNode* node) override;
246 void BookmarkNodeChildrenReordered(
247 bookmarks::BookmarkModel* model,
248 const bookmarks::BookmarkNode* node) override;
249 void ExtensiveBookmarkChangesBeginning(
250 bookmarks::BookmarkModel* model) override;
251 void ExtensiveBookmarkChangesEnded(bookmarks::BookmarkModel* model) override;
252
253 // Override PartnerBookmarksShim::Observer
254 void PartnerShimChanged(PartnerBookmarksShim* shim) override;
255 void PartnerShimLoaded(PartnerBookmarksShim* shim) override;
256 void ShimBeingDeleted(PartnerBookmarksShim* shim) override;
257
258 Profile* profile_;
259 JavaObjectWeakGlobalRef weak_java_ref_;
260 bookmarks::BookmarkModel* bookmark_model_; // weak
261 bookmarks::ManagedBookmarkService* managed_bookmark_service_; // weak
262 scoped_ptr<bookmarks::ScopedGroupBookmarkActions> grouped_bookmark_actions_;
263 PrefChangeRegistrar pref_change_registrar_;
264
265 // Information about the Partner bookmarks (must check for IsLoaded()).
266 // This is owned by profile.
267 PartnerBookmarksShim* partner_bookmarks_shim_;
268
269 DISALLOW_COPY_AND_ASSIGN(BookmarksBridge);
270 };
271
272 #endif // CHROME_BROWSER_ANDROID_BOOKMARKS_BOOKMARKS_BRIDGE_H_
OLDNEW
« no previous file with comments | « chrome/browser/android/bookmarks/bookmark_bridge.cc ('k') | chrome/browser/android/bookmarks/bookmarks_bridge.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698