| Index: chrome/browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.cc
|
| diff --git a/chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.cc b/chrome/browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.cc
|
| similarity index 84%
|
| rename from chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.cc
|
| rename to chrome/browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.cc
|
| index f455b3bc04d72fa2f92135f2a26a197aaa47f692..04fdaf5da7db36e041356cae14257e3d1e72fc78 100644
|
| --- a/chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.cc
|
| +++ b/chrome/browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.cc
|
| @@ -2,12 +2,13 @@
|
| // Use of this source code is governed by a BSD-style license that can be
|
| // found in the LICENSE file.
|
|
|
| -#include "chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.h"
|
| +#include "chrome/browser/enhanced_bookmarks/android/enhanced_bookmarks_bridge.h"
|
|
|
| #include "base/android/jni_array.h"
|
| #include "base/android/jni_string.h"
|
| #include "base/prefs/pref_service.h"
|
| #include "chrome/browser/bookmarks/bookmark_model_factory.h"
|
| +#include "chrome/browser/enhanced_bookmarks/android/bookmark_image_service_factory.h"
|
| #include "chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_service.h"
|
| #include "chrome/browser/enhanced_bookmarks/chrome_bookmark_server_cluster_service_factory.h"
|
| #include "chrome/browser/enhanced_bookmarks/enhanced_bookmark_model_factory.h"
|
| @@ -20,17 +21,45 @@
|
| #include "components/bookmarks/browser/bookmark_utils.h"
|
| #include "components/bookmarks/common/android/bookmark_id.h"
|
| #include "components/bookmarks/common/android/bookmark_type.h"
|
| +#include "components/enhanced_bookmarks/bookmark_image_service.h"
|
| #include "components/enhanced_bookmarks/enhanced_bookmark_model.h"
|
| +#include "components/enhanced_bookmarks/image_record.h"
|
| #include "components/signin/core/browser/signin_manager.h"
|
| #include "content/public/browser/browser_thread.h"
|
| #include "jni/EnhancedBookmarksBridge_jni.h"
|
| +#include "ui/gfx/android/java_bitmap.h"
|
| +#include "ui/gfx/image/image.h"
|
|
|
| using base::android::AttachCurrentThread;
|
| +using base::android::ScopedJavaGlobalRef;
|
| using bookmarks::android::JavaBookmarkIdCreateBookmarkId;
|
| using bookmarks::android::JavaBookmarkIdGetId;
|
| using bookmarks::android::JavaBookmarkIdGetType;
|
| using bookmarks::BookmarkType;
|
| using content::BrowserThread;
|
| +using enhanced_bookmarks::ImageRecord;
|
| +
|
| +namespace {
|
| +
|
| +void Callback(ScopedJavaGlobalRef<jobject>* j_callback,
|
| + const ImageRecord& image_record) {
|
| + JNIEnv* env = base::android::AttachCurrentThread();
|
| +
|
| + scoped_ptr<ScopedJavaGlobalRef<jobject> > j_callback_ptr(j_callback);
|
| + ScopedJavaLocalRef<jstring> j_url =
|
| + base::android::ConvertUTF8ToJavaString(env, image_record.url.spec());
|
| +
|
| + SkBitmap bitmap = image_record.image.AsBitmap();
|
| + ScopedJavaLocalRef<jobject> j_bitmap;
|
| + if (!bitmap.isNull()) {
|
| + j_bitmap = gfx::ConvertToJavaBitmap(&bitmap);
|
| + }
|
| +
|
| + enhanced_bookmarks::android::Java_SalientImageCallback_onSalientImageReady(
|
| + env, j_callback_ptr->obj(), j_bitmap.Release(), j_url.Release());
|
| +}
|
| +
|
| +} // namespace
|
|
|
| namespace enhanced_bookmarks {
|
| namespace android {
|
| @@ -45,6 +74,8 @@ EnhancedBookmarksBridge::EnhancedBookmarksBridge(JNIEnv* env,
|
| cluster_service_ =
|
| ChromeBookmarkServerClusterServiceFactory::GetForBrowserContext(profile_);
|
| cluster_service_->AddObserver(this);
|
| + bookmark_image_service_ =
|
| + BookmarkImageServiceFactory::GetForBrowserContext(profile_);
|
| search_service_.reset(new BookmarkServerSearchService(
|
| profile_->GetRequestContext(),
|
| ProfileOAuth2TokenServiceFactory::GetForProfile(profile_),
|
| @@ -62,6 +93,20 @@ void EnhancedBookmarksBridge::Destroy(JNIEnv*, jobject) {
|
| delete this;
|
| }
|
|
|
| +void EnhancedBookmarksBridge::SalientImageForUrl(JNIEnv* env,
|
| + jobject obj,
|
| + jstring j_url,
|
| + jobject j_callback) {
|
| + DCHECK(j_callback);
|
| +
|
| + GURL url(base::android::ConvertJavaStringToUTF16(env, j_url));
|
| + scoped_ptr<ScopedJavaGlobalRef<jobject>> j_callback_ptr(
|
| + new ScopedJavaGlobalRef<jobject>());
|
| + j_callback_ptr->Reset(env, j_callback);
|
| + bookmark_image_service_->SalientImageForUrl(
|
| + url, base::Bind(&Callback, j_callback_ptr.release()));
|
| +}
|
| +
|
| ScopedJavaLocalRef<jstring> EnhancedBookmarksBridge::GetBookmarkDescription(
|
| JNIEnv* env, jobject obj, jlong id, jint type) {
|
| DCHECK(enhanced_bookmark_model_->loaded());
|
| @@ -243,7 +288,7 @@ void EnhancedBookmarksBridge::OnChange(BookmarkServerService* service) {
|
|
|
| if (service == cluster_service_) {
|
| Java_EnhancedBookmarksBridge_onFiltersChanged(env, obj.obj());
|
| - } else if (service == search_service_.get()){
|
| + } else if (service == search_service_.get()) {
|
| Java_EnhancedBookmarksBridge_onSearchResultReturned(env, obj.obj());
|
| }
|
| }
|
|
|