Commit a52ec9a5 authored by ianwen's avatar ianwen Committed by Commit bot

Add method to get filters for a bookmark in Enhanced bookmark bridge

Per mock:
https://beta-dot-folio.googleplex.com/chrome-ux/mocks/212-stars-iphone/20/phone#%2F05-detail-edit-bookmark.png%3Fc=hidden

All tags/filters associated with a bookmark should be displayed in
enhanced bookmark detail page. This CL introduced related APIs to jni
bridge for UI to retrieve.

BUG=NONE

Review URL: https://codereview.chromium.org/694093002

Cr-Commit-Position: refs/heads/master@{#302365}
parent ad2c0b0f
...@@ -83,17 +83,26 @@ public final class EnhancedBookmarksBridge { ...@@ -83,17 +83,26 @@ public final class EnhancedBookmarksBridge {
* Moves a Bookmark in the EnhancedBookmarkModel * Moves a Bookmark in the EnhancedBookmarkModel
* @param bookmarkId The item to be be moved * @param bookmarkId The item to be be moved
* @param newParentId The new parent of the item * @param newParentId The new parent of the item
* @param index New position index of bookmark within the parent * @param index New position index of bookmark within the parent.
*/ */
public void moveBookmark(BookmarkId bookmarkId, BookmarkId newParentId, int index) { public void moveBookmark(BookmarkId bookmarkId, BookmarkId newParentId, int index) {
nativeMoveBookmark(mNativeEnhancedBookmarksBridge, bookmarkId, newParentId, index); nativeMoveBookmark(mNativeEnhancedBookmarksBridge, bookmarkId, newParentId, index);
} }
/**
* Get descriptions of a given bookmark.
* @param id The id of the bookmark to look at.
* @return Description of the bookmark. If given a partner bookmark, this method will return an
* empty list.
*/
public String getBookmarkDescription(BookmarkId id) { public String getBookmarkDescription(BookmarkId id) {
return nativeGetBookmarkDescription(mNativeEnhancedBookmarksBridge, id.getId(), return nativeGetBookmarkDescription(mNativeEnhancedBookmarksBridge, id.getId(),
id.getType()); id.getType());
} }
/**
* Sets the description of the given bookmark.
*/
public void setBookmarkDescription(BookmarkId id, String description) { public void setBookmarkDescription(BookmarkId id, String description) {
nativeSetBookmarkDescription(mNativeEnhancedBookmarksBridge, id.getId(), id.getType(), nativeSetBookmarkDescription(mNativeEnhancedBookmarksBridge, id.getId(), id.getType(),
description); description);
...@@ -162,6 +171,18 @@ public final class EnhancedBookmarksBridge { ...@@ -162,6 +171,18 @@ public final class EnhancedBookmarksBridge {
mSearchObservers.removeObserver(observer); mSearchObservers.removeObserver(observer);
} }
/**
* Get all filters associated with the given bookmark.
*
* @param bookmark The bookmark to find filters for.
* @return Array of Strings, each representing a filter. If given a partner bookmark, this
* method will return an empty array.
*/
public String[] getFiltersForBookmark(BookmarkId bookmark) {
return nativeGetFiltersForBookmark(mNativeEnhancedBookmarksBridge, bookmark.getId(),
bookmark.getType());
}
/** /**
* @return Current set of known auto-filters for bookmarks. * @return Current set of known auto-filters for bookmarks.
*/ */
...@@ -206,6 +227,8 @@ public final class EnhancedBookmarksBridge { ...@@ -206,6 +227,8 @@ public final class EnhancedBookmarksBridge {
private native List<BookmarkId> nativeGetSearchResults(long nativeEnhancedBookmarksBridge, private native List<BookmarkId> nativeGetSearchResults(long nativeEnhancedBookmarksBridge,
String query); String query);
private native String[] nativeGetFilters(long nativeEnhancedBookmarksBridge); private native String[] nativeGetFilters(long nativeEnhancedBookmarksBridge);
private native String[] nativeGetFiltersForBookmark(long nativeEnhancedBookmarksBridge, long id,
int type);
private native BookmarkId nativeAddFolder(long nativeEnhancedBookmarksBridge, BookmarkId parent, private native BookmarkId nativeAddFolder(long nativeEnhancedBookmarksBridge, BookmarkId parent,
int index, String title); int index, String title);
private native void nativeMoveBookmark(long nativeEnhancedBookmarksBridge, private native void nativeMoveBookmark(long nativeEnhancedBookmarksBridge,
......
...@@ -65,7 +65,9 @@ void EnhancedBookmarksBridge::Destroy(JNIEnv*, jobject) { ...@@ -65,7 +65,9 @@ void EnhancedBookmarksBridge::Destroy(JNIEnv*, jobject) {
ScopedJavaLocalRef<jstring> EnhancedBookmarksBridge::GetBookmarkDescription( ScopedJavaLocalRef<jstring> EnhancedBookmarksBridge::GetBookmarkDescription(
JNIEnv* env, jobject obj, jlong id, jint type) { JNIEnv* env, jobject obj, jlong id, jint type) {
DCHECK(enhanced_bookmark_model_->loaded()); DCHECK(enhanced_bookmark_model_->loaded());
DCHECK_EQ(BookmarkType::BOOKMARK_TYPE_NORMAL, type); if (type != BookmarkType::BOOKMARK_TYPE_NORMAL) {
return base::android::ConvertUTF8ToJavaString(env, std::string());
}
const BookmarkNode* node = bookmarks::GetBookmarkNodeByID( const BookmarkNode* node = bookmarks::GetBookmarkNodeByID(
enhanced_bookmark_model_->bookmark_model(), static_cast<int64>(id)); enhanced_bookmark_model_->bookmark_model(), static_cast<int64>(id));
...@@ -90,6 +92,23 @@ void EnhancedBookmarksBridge::SetBookmarkDescription(JNIEnv* env, ...@@ -90,6 +92,23 @@ void EnhancedBookmarksBridge::SetBookmarkDescription(JNIEnv* env,
node, base::android::ConvertJavaStringToUTF8(env, description)); 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, void EnhancedBookmarksBridge::GetBookmarksForFilter(JNIEnv* env,
jobject obj, jobject obj,
jstring j_filter, jstring j_filter,
......
...@@ -35,6 +35,11 @@ class EnhancedBookmarksBridge : public BookmarkServerServiceObserver { ...@@ -35,6 +35,11 @@ class EnhancedBookmarksBridge : public BookmarkServerServiceObserver {
jint type, jint type,
jstring description); jstring description);
base::android::ScopedJavaLocalRef<jobjectArray> GetFiltersForBookmark(
JNIEnv* env,
jobject obj,
jlong id,
jint type);
void GetBookmarksForFilter(JNIEnv* env, void GetBookmarksForFilter(JNIEnv* env,
jobject obj, jobject obj,
jstring filter, jstring filter,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment