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

Side by Side Diff: chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.cc

Issue 688883002: Revert of Add Search Service in Enhanced Bookmark Bridge (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.h" 5 #include "chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.h"
6 6
7 #include "base/android/jni_array.h" 7 #include "base/android/jni_array.h"
8 #include "base/android/jni_string.h" 8 #include "base/android/jni_string.h"
9 #include "base/prefs/pref_service.h" 9 #include "base/prefs/pref_service.h"
10 #include "chrome/browser/bookmarks/bookmark_model_factory.h" 10 #include "chrome/browser/bookmarks/bookmark_model_factory.h"
11 #include "chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_servi ce.h" 11 #include "chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_servi ce.h"
12 #include "chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_servi ce_factory.h" 12 #include "chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_servi ce_factory.h"
13 #include "chrome/browser/enhanced_bookmarks/enhanced_bookmark_model_factory.h" 13 #include "chrome/browser/enhanced_bookmarks/enhanced_bookmark_model_factory.h"
14 #include "chrome/browser/profiles/profile_android.h" 14 #include "chrome/browser/profiles/profile_android.h"
15 #include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
16 #include "chrome/browser/signin/signin_manager_factory.h"
17 #include "chrome/common/chrome_version_info.h" 15 #include "chrome/common/chrome_version_info.h"
18 #include "chrome/common/pref_names.h" 16 #include "chrome/common/pref_names.h"
19 #include "components/bookmarks/browser/bookmark_model.h" 17 #include "components/bookmarks/browser/bookmark_model.h"
20 #include "components/bookmarks/browser/bookmark_utils.h" 18 #include "components/bookmarks/browser/bookmark_utils.h"
21 #include "components/bookmarks/common/android/bookmark_id.h" 19 #include "components/bookmarks/common/android/bookmark_id.h"
22 #include "components/bookmarks/common/android/bookmark_type.h" 20 #include "components/bookmarks/common/android/bookmark_type.h"
23 #include "components/enhanced_bookmarks/enhanced_bookmark_model.h" 21 #include "components/enhanced_bookmarks/enhanced_bookmark_model.h"
24 #include "components/signin/core/browser/signin_manager.h"
25 #include "content/public/browser/browser_thread.h" 22 #include "content/public/browser/browser_thread.h"
26 #include "jni/EnhancedBookmarksBridge_jni.h" 23 #include "jni/EnhancedBookmarksBridge_jni.h"
27 24
28 using base::android::AttachCurrentThread; 25 using base::android::AttachCurrentThread;
29 using bookmarks::android::JavaBookmarkIdCreateBookmarkId; 26 using bookmarks::android::JavaBookmarkIdCreateBookmarkId;
30 using bookmarks::android::JavaBookmarkIdGetId; 27 using bookmarks::android::JavaBookmarkIdGetId;
31 using bookmarks::android::JavaBookmarkIdGetType; 28 using bookmarks::android::JavaBookmarkIdGetType;
32 using bookmarks::BookmarkType; 29 using bookmarks::BookmarkType;
33 using content::BrowserThread; 30 using content::BrowserThread;
34 31
35 namespace enhanced_bookmarks { 32 namespace enhanced_bookmarks {
36 namespace android { 33 namespace android {
37 34
38 EnhancedBookmarksBridge::EnhancedBookmarksBridge(JNIEnv* env, 35 EnhancedBookmarksBridge::EnhancedBookmarksBridge(JNIEnv* env,
39 jobject obj, 36 jobject obj,
40 Profile* profile) : weak_java_ref_(env, obj) { 37 Profile* profile) : weak_java_ref_(env, obj) {
41 profile_ = profile; 38 profile_ = profile;
42 enhanced_bookmark_model_ = 39 enhanced_bookmark_model_ =
43 EnhancedBookmarkModelFactory::GetForBrowserContext(profile_); 40 EnhancedBookmarkModelFactory::GetForBrowserContext(profile_);
44 enhanced_bookmark_model_->SetVersionSuffix(chrome::VersionInfo().OSType()); 41 enhanced_bookmark_model_->SetVersionSuffix(chrome::VersionInfo().OSType());
45 cluster_service_ = 42 cluster_service_ =
46 ChromeBookmarkServerClusterServiceFactory::GetForBrowserContext(profile_); 43 ChromeBookmarkServerClusterServiceFactory::GetForBrowserContext(profile_);
47 cluster_service_->AddObserver(this); 44 cluster_service_->AddObserver(this);
48 search_service_.reset(new BookmarkServerSearchService(
49 profile_->GetRequestContext(),
50 ProfileOAuth2TokenServiceFactory::GetForProfile(profile_),
51 SigninManagerFactory::GetForProfile(profile_),
52 EnhancedBookmarkModelFactory::GetForBrowserContext(profile_)));
53 search_service_->AddObserver(this);
54 } 45 }
55 46
56 EnhancedBookmarksBridge::~EnhancedBookmarksBridge() { 47 EnhancedBookmarksBridge::~EnhancedBookmarksBridge() {
57 cluster_service_->RemoveObserver(this); 48 cluster_service_->RemoveObserver(this);
58 search_service_->RemoveObserver(this);
59 } 49 }
60 50
61 void EnhancedBookmarksBridge::Destroy(JNIEnv*, jobject) { 51 void EnhancedBookmarksBridge::Destroy(JNIEnv*, jobject) {
62 delete this; 52 delete this;
63 } 53 }
64 54
65 ScopedJavaLocalRef<jstring> EnhancedBookmarksBridge::GetBookmarkDescription( 55 ScopedJavaLocalRef<jstring> EnhancedBookmarksBridge::GetBookmarkDescription(
66 JNIEnv* env, jobject obj, jlong id, jint type) { 56 JNIEnv* env, jobject obj, jlong id, jint type) {
67 DCHECK(enhanced_bookmark_model_->loaded()); 57 DCHECK(enhanced_bookmark_model_->loaded());
68 DCHECK_EQ(BookmarkType::BOOKMARK_TYPE_NORMAL, type); 58 DCHECK_EQ(BookmarkType::BOOKMARK_TYPE_NORMAL, type);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 for (const BookmarkNode* node : bookmarks) { 92 for (const BookmarkNode* node : bookmarks) {
103 Java_EnhancedBookmarksBridge_addToBookmarkIdList( 93 Java_EnhancedBookmarksBridge_addToBookmarkIdList(
104 env, j_result_obj, node->id(), node->type()); 94 env, j_result_obj, node->id(), node->type());
105 } 95 }
106 } 96 }
107 97
108 ScopedJavaLocalRef<jobjectArray> EnhancedBookmarksBridge::GetFilters( 98 ScopedJavaLocalRef<jobjectArray> EnhancedBookmarksBridge::GetFilters(
109 JNIEnv* env, 99 JNIEnv* env,
110 jobject obj) { 100 jobject obj) {
111 DCHECK(enhanced_bookmark_model_->loaded()); 101 DCHECK(enhanced_bookmark_model_->loaded());
112 const std::vector<std::string> filters = cluster_service_->GetClusters(); 102 const std::vector<std::string> filters =
103 cluster_service_->GetClusters();
113 return base::android::ToJavaArrayOfStrings(env, filters); 104 return base::android::ToJavaArrayOfStrings(env, filters);
114 } 105 }
115 106
116 ScopedJavaLocalRef<jobject> EnhancedBookmarksBridge::AddFolder(JNIEnv* env, 107 ScopedJavaLocalRef<jobject> EnhancedBookmarksBridge::AddFolder(JNIEnv* env,
117 jobject obj, 108 jobject obj,
118 jobject j_parent_id_obj, 109 jobject j_parent_id_obj,
119 jint index, 110 jint index,
120 jstring j_title) { 111 jstring j_title) {
121 DCHECK(enhanced_bookmark_model_->loaded()); 112 DCHECK(enhanced_bookmark_model_->loaded());
122 long bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj); 113 long bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj);
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 base::Time::Now()); 169 base::Time::Now());
179 if (!new_node) { 170 if (!new_node) {
180 NOTREACHED(); 171 NOTREACHED();
181 return ScopedJavaLocalRef<jobject>(); 172 return ScopedJavaLocalRef<jobject>();
182 } 173 }
183 ScopedJavaLocalRef<jobject> new_java_obj = 174 ScopedJavaLocalRef<jobject> new_java_obj =
184 JavaBookmarkIdCreateBookmarkId(env, new_node->id(), new_node->type()); 175 JavaBookmarkIdCreateBookmarkId(env, new_node->id(), new_node->type());
185 return new_java_obj; 176 return new_java_obj;
186 } 177 }
187 178
188 void EnhancedBookmarksBridge::SendSearchRequest(JNIEnv* env,
189 jobject obj,
190 jstring j_query) {
191 search_service_->Search(base::android::ConvertJavaStringToUTF8(env, j_query));
192 }
193
194 ScopedJavaLocalRef<jobject> EnhancedBookmarksBridge::GetSearchResults(
195 JNIEnv* env,
196 jobject obj,
197 jstring j_query) {
198 DCHECK(enhanced_bookmark_model_->loaded());
199
200 ScopedJavaLocalRef<jobject> j_list =
201 Java_EnhancedBookmarksBridge_createBookmarkIdList(env);
202 scoped_ptr<std::vector<const BookmarkNode*>> results =
203 search_service_->ResultForQuery(
204 base::android::ConvertJavaStringToUTF8(env, j_query));
205
206 // If result is null, return a null java reference.
207 if (!results.get())
208 return ScopedJavaLocalRef<jobject>();
209
210 for (const BookmarkNode* node : *results) {
211 Java_EnhancedBookmarksBridge_addToBookmarkIdList(env, j_list.obj(),
212 node->id(), node->type());
213 }
214 return j_list;
215 }
216
217 void EnhancedBookmarksBridge::OnChange(BookmarkServerService* service) { 179 void EnhancedBookmarksBridge::OnChange(BookmarkServerService* service) {
218 DCHECK(enhanced_bookmark_model_->loaded()); 180 DCHECK(enhanced_bookmark_model_->loaded());
219 JNIEnv* env = AttachCurrentThread(); 181 JNIEnv* env = AttachCurrentThread();
220 182
221 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env); 183 ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env);
222 if (obj.is_null()) 184 if (obj.is_null())
223 return; 185 return;
224 186
225 if (service == cluster_service_) { 187 Java_EnhancedBookmarksBridge_onFiltersChanged(env, obj.obj());
226 Java_EnhancedBookmarksBridge_onFiltersChanged(env, obj.obj());
227 } else if (service == search_service_.get()){
228 Java_EnhancedBookmarksBridge_onSearchResultReturned(env, obj.obj());
229 }
230 } 188 }
231 189
232 bool EnhancedBookmarksBridge::IsEditable(const BookmarkNode* node) const { 190 bool EnhancedBookmarksBridge::IsEditable(const BookmarkNode* node) const {
233 if (!node || (node->type() != BookmarkNode::FOLDER && 191 if (!node || (node->type() != BookmarkNode::FOLDER &&
234 node->type() != BookmarkNode::URL)) { 192 node->type() != BookmarkNode::URL)) {
235 return false; 193 return false;
236 } 194 }
237 return profile_->GetPrefs()->GetBoolean( 195 return profile_->GetPrefs()->GetBoolean(
238 bookmarks::prefs::kEditBookmarksEnabled); 196 bookmarks::prefs::kEditBookmarksEnabled);
239 } 197 }
240 198
241 static jlong Init(JNIEnv* env, jobject obj, jobject j_profile) { 199 static jlong Init(JNIEnv* env, jobject obj, jobject j_profile) {
242 return reinterpret_cast<jlong>(new EnhancedBookmarksBridge( 200 return reinterpret_cast<jlong>(new EnhancedBookmarksBridge(
243 env, obj, ProfileAndroid::FromProfileAndroid(j_profile))); 201 env, obj, ProfileAndroid::FromProfileAndroid(j_profile)));
244 } 202 }
245 203
246 bool RegisterEnhancedBookmarksBridge(JNIEnv* env) { 204 bool RegisterEnhancedBookmarksBridge(JNIEnv* env) {
247 return RegisterNativesImpl(env); 205 return RegisterNativesImpl(env);
248 } 206 }
249 207
250 } // namespace android 208 } // namespace android
251 } // namespace enhanced_bookmarks 209 } // namespace enhanced_bookmarks
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698