| Index: chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.cc
|
| diff --git a/chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.cc b/chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.cc
|
| deleted file mode 100644
|
| index f455b3bc04d72fa2f92135f2a26a197aaa47f692..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/android/enhanced_bookmarks/enhanced_bookmarks_bridge.cc
|
| +++ /dev/null
|
| @@ -1,270 +0,0 @@
|
| -// Copyright 2014 The Chromium Authors. All rights reserved.
|
| -// 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 "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/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"
|
| -#include "chrome/browser/profiles/profile_android.h"
|
| -#include "chrome/browser/signin/profile_oauth2_token_service_factory.h"
|
| -#include "chrome/browser/signin/signin_manager_factory.h"
|
| -#include "chrome/common/chrome_version_info.h"
|
| -#include "chrome/common/pref_names.h"
|
| -#include "components/bookmarks/browser/bookmark_model.h"
|
| -#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/enhanced_bookmark_model.h"
|
| -#include "components/signin/core/browser/signin_manager.h"
|
| -#include "content/public/browser/browser_thread.h"
|
| -#include "jni/EnhancedBookmarksBridge_jni.h"
|
| -
|
| -using base::android::AttachCurrentThread;
|
| -using bookmarks::android::JavaBookmarkIdCreateBookmarkId;
|
| -using bookmarks::android::JavaBookmarkIdGetId;
|
| -using bookmarks::android::JavaBookmarkIdGetType;
|
| -using bookmarks::BookmarkType;
|
| -using content::BrowserThread;
|
| -
|
| -namespace enhanced_bookmarks {
|
| -namespace android {
|
| -
|
| -EnhancedBookmarksBridge::EnhancedBookmarksBridge(JNIEnv* env,
|
| - jobject obj,
|
| - Profile* profile) : weak_java_ref_(env, obj) {
|
| - profile_ = profile;
|
| - enhanced_bookmark_model_ =
|
| - EnhancedBookmarkModelFactory::GetForBrowserContext(profile_);
|
| - enhanced_bookmark_model_->SetVersionSuffix(chrome::VersionInfo().OSType());
|
| - cluster_service_ =
|
| - ChromeBookmarkServerClusterServiceFactory::GetForBrowserContext(profile_);
|
| - cluster_service_->AddObserver(this);
|
| - search_service_.reset(new BookmarkServerSearchService(
|
| - profile_->GetRequestContext(),
|
| - ProfileOAuth2TokenServiceFactory::GetForProfile(profile_),
|
| - SigninManagerFactory::GetForProfile(profile_),
|
| - EnhancedBookmarkModelFactory::GetForBrowserContext(profile_)));
|
| - search_service_->AddObserver(this);
|
| -}
|
| -
|
| -EnhancedBookmarksBridge::~EnhancedBookmarksBridge() {
|
| - cluster_service_->RemoveObserver(this);
|
| - search_service_->RemoveObserver(this);
|
| -}
|
| -
|
| -void EnhancedBookmarksBridge::Destroy(JNIEnv*, jobject) {
|
| - delete this;
|
| -}
|
| -
|
| -ScopedJavaLocalRef<jstring> EnhancedBookmarksBridge::GetBookmarkDescription(
|
| - JNIEnv* env, jobject obj, jlong id, jint type) {
|
| - DCHECK(enhanced_bookmark_model_->loaded());
|
| - if (type != BookmarkType::BOOKMARK_TYPE_NORMAL) {
|
| - return base::android::ConvertUTF8ToJavaString(env, std::string());
|
| - }
|
| -
|
| - const BookmarkNode* node = bookmarks::GetBookmarkNodeByID(
|
| - enhanced_bookmark_model_->bookmark_model(), static_cast<int64>(id));
|
| -
|
| - return node ? base::android::ConvertUTF8ToJavaString(
|
| - env, enhanced_bookmark_model_->GetDescription(node))
|
| - : ScopedJavaLocalRef<jstring>();
|
| -}
|
| -
|
| -void EnhancedBookmarksBridge::SetBookmarkDescription(JNIEnv* env,
|
| - jobject obj,
|
| - jlong id,
|
| - jint type,
|
| - jstring description) {
|
| - DCHECK(enhanced_bookmark_model_->loaded());
|
| - DCHECK_EQ(type, BookmarkType::BOOKMARK_TYPE_NORMAL);
|
| -
|
| - const BookmarkNode* node = bookmarks::GetBookmarkNodeByID(
|
| - enhanced_bookmark_model_->bookmark_model(), static_cast<int64>(id));
|
| -
|
| - enhanced_bookmark_model_->SetDescription(
|
| - node, base::android::ConvertJavaStringToUTF8(env, description));
|
| -}
|
| -
|
| -ScopedJavaLocalRef<jobjectArray> EnhancedBookmarksBridge::GetFiltersForBookmark(
|
| - JNIEnv* env,
|
| - jobject obj,
|
| - jlong id,
|
| - jint type) {
|
| - DCHECK(enhanced_bookmark_model_->loaded());
|
| - if (type != BookmarkType::BOOKMARK_TYPE_NORMAL) {
|
| - return base::android::ToJavaArrayOfStrings(env, std::vector<std::string>());
|
| - }
|
| -
|
| - const BookmarkNode* node = bookmarks::GetBookmarkNodeByID(
|
| - enhanced_bookmark_model_->bookmark_model(), static_cast<int64>(id));
|
| - std::vector<std::string> filters =
|
| - cluster_service_->ClustersForBookmark(node);
|
| - return base::android::ToJavaArrayOfStrings(env, filters);
|
| -}
|
| -
|
| -void EnhancedBookmarksBridge::GetBookmarksForFilter(JNIEnv* env,
|
| - jobject obj,
|
| - jstring j_filter,
|
| - jobject j_result_obj) {
|
| - DCHECK(enhanced_bookmark_model_->loaded());
|
| - const std::string title =
|
| - base::android::ConvertJavaStringToUTF8(env, j_filter);
|
| - const std::vector<const BookmarkNode*> bookmarks =
|
| - cluster_service_->BookmarksForClusterNamed(title);
|
| - for (const BookmarkNode* node : bookmarks) {
|
| - Java_EnhancedBookmarksBridge_addToBookmarkIdList(
|
| - env, j_result_obj, node->id(), node->type());
|
| - }
|
| -}
|
| -
|
| -ScopedJavaLocalRef<jobjectArray> EnhancedBookmarksBridge::GetFilters(
|
| - JNIEnv* env,
|
| - jobject obj) {
|
| - DCHECK(enhanced_bookmark_model_->loaded());
|
| - const std::vector<std::string> filters = cluster_service_->GetClusters();
|
| - return base::android::ToJavaArrayOfStrings(env, filters);
|
| -}
|
| -
|
| -ScopedJavaLocalRef<jobject> EnhancedBookmarksBridge::AddFolder(JNIEnv* env,
|
| - jobject obj,
|
| - jobject j_parent_id_obj,
|
| - jint index,
|
| - jstring j_title) {
|
| - DCHECK(enhanced_bookmark_model_->loaded());
|
| - long bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj);
|
| - const BookmarkNode* parent = bookmarks::GetBookmarkNodeByID(
|
| - enhanced_bookmark_model_->bookmark_model(),
|
| - static_cast<int64>(bookmark_id));
|
| - const BookmarkNode* new_node = enhanced_bookmark_model_->AddFolder(
|
| - parent, index, base::android::ConvertJavaStringToUTF16(env, j_title));
|
| - if (!new_node) {
|
| - NOTREACHED();
|
| - return ScopedJavaLocalRef<jobject>();
|
| - }
|
| - ScopedJavaLocalRef<jobject> new_java_obj =
|
| - JavaBookmarkIdCreateBookmarkId(env, new_node->id(), new_node->type());
|
| - return new_java_obj;
|
| -}
|
| -
|
| -void EnhancedBookmarksBridge::MoveBookmark(JNIEnv* env,
|
| - jobject obj,
|
| - jobject j_bookmark_id_obj,
|
| - jobject j_parent_id_obj) {
|
| - DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - DCHECK(enhanced_bookmark_model_->loaded());
|
| -
|
| - long bookmark_id = JavaBookmarkIdGetId(env, j_bookmark_id_obj);
|
| - const BookmarkNode* node = bookmarks::GetBookmarkNodeByID(
|
| - enhanced_bookmark_model_->bookmark_model(),
|
| - static_cast<int64>(bookmark_id));
|
| - if (!IsEditable(node)) {
|
| - NOTREACHED();
|
| - return;
|
| - }
|
| - bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj);
|
| - const BookmarkNode* new_parent_node = bookmarks::GetBookmarkNodeByID(
|
| - enhanced_bookmark_model_->bookmark_model(),
|
| - static_cast<int64>(bookmark_id));
|
| - enhanced_bookmark_model_->Move(node, new_parent_node,
|
| - new_parent_node->child_count());
|
| -}
|
| -
|
| -ScopedJavaLocalRef<jobject> EnhancedBookmarksBridge::AddBookmark(
|
| - JNIEnv* env,
|
| - jobject obj,
|
| - jobject j_parent_id_obj,
|
| - jint index,
|
| - jstring j_title,
|
| - jstring j_url) {
|
| - DCHECK(enhanced_bookmark_model_->loaded());
|
| - long bookmark_id = JavaBookmarkIdGetId(env, j_parent_id_obj);
|
| - const BookmarkNode* parent = bookmarks::GetBookmarkNodeByID(
|
| - enhanced_bookmark_model_->bookmark_model(),
|
| - static_cast<int64>(bookmark_id));
|
| -
|
| - const BookmarkNode* new_node = enhanced_bookmark_model_->AddURL(
|
| - parent,
|
| - index,
|
| - base::android::ConvertJavaStringToUTF16(env, j_title),
|
| - GURL(base::android::ConvertJavaStringToUTF16(env, j_url)),
|
| - base::Time::Now());
|
| - if (!new_node) {
|
| - NOTREACHED();
|
| - return ScopedJavaLocalRef<jobject>();
|
| - }
|
| - ScopedJavaLocalRef<jobject> new_java_obj =
|
| - JavaBookmarkIdCreateBookmarkId(env, new_node->id(), new_node->type());
|
| - return new_java_obj;
|
| -}
|
| -
|
| -void EnhancedBookmarksBridge::SendSearchRequest(JNIEnv* env,
|
| - jobject obj,
|
| - jstring j_query) {
|
| - search_service_->Search(base::android::ConvertJavaStringToUTF8(env, j_query));
|
| -}
|
| -
|
| -ScopedJavaLocalRef<jobject> EnhancedBookmarksBridge::GetSearchResults(
|
| - JNIEnv* env,
|
| - jobject obj,
|
| - jstring j_query) {
|
| - DCHECK(enhanced_bookmark_model_->loaded());
|
| -
|
| - ScopedJavaLocalRef<jobject> j_list =
|
| - Java_EnhancedBookmarksBridge_createBookmarkIdList(env);
|
| - scoped_ptr<std::vector<const BookmarkNode*>> results =
|
| - search_service_->ResultForQuery(
|
| - base::android::ConvertJavaStringToUTF8(env, j_query));
|
| -
|
| - // If result is null, return a null java reference.
|
| - if (!results.get())
|
| - return ScopedJavaLocalRef<jobject>();
|
| -
|
| - for (const BookmarkNode* node : *results) {
|
| - Java_EnhancedBookmarksBridge_addToBookmarkIdList(env, j_list.obj(),
|
| - node->id(), node->type());
|
| - }
|
| - return j_list;
|
| -}
|
| -
|
| -void EnhancedBookmarksBridge::OnChange(BookmarkServerService* service) {
|
| - DCHECK(enhanced_bookmark_model_->loaded());
|
| - JNIEnv* env = AttachCurrentThread();
|
| -
|
| - ScopedJavaLocalRef<jobject> obj = weak_java_ref_.get(env);
|
| - if (obj.is_null())
|
| - return;
|
| -
|
| - if (service == cluster_service_) {
|
| - Java_EnhancedBookmarksBridge_onFiltersChanged(env, obj.obj());
|
| - } else if (service == search_service_.get()){
|
| - Java_EnhancedBookmarksBridge_onSearchResultReturned(env, obj.obj());
|
| - }
|
| -}
|
| -
|
| -bool EnhancedBookmarksBridge::IsEditable(const BookmarkNode* node) const {
|
| - if (!node || (node->type() != BookmarkNode::FOLDER &&
|
| - node->type() != BookmarkNode::URL)) {
|
| - return false;
|
| - }
|
| - return profile_->GetPrefs()->GetBoolean(
|
| - bookmarks::prefs::kEditBookmarksEnabled);
|
| -}
|
| -
|
| -static jlong Init(JNIEnv* env, jobject obj, jobject j_profile) {
|
| - return reinterpret_cast<jlong>(new EnhancedBookmarksBridge(
|
| - env, obj, ProfileAndroid::FromProfileAndroid(j_profile)));
|
| -}
|
| -
|
| -bool RegisterEnhancedBookmarksBridge(JNIEnv* env) {
|
| - return RegisterNativesImpl(env);
|
| -}
|
| -
|
| -} // namespace android
|
| -} // namespace enhanced_bookmarks
|
|
|