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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java

Issue 1270693004: Add bookmark search feature to enhanced bookmark (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java
index 9c31845e4c4622e3e04292d751efa2064727106e..de63c8576e09ada06a297e5f15e3c0eb107138c1 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/BookmarksBridge.java
@@ -4,9 +4,12 @@
package org.chromium.chrome.browser;
+import android.util.Pair;
+
import org.chromium.base.ObserverList;
import org.chromium.base.VisibleForTesting;
import org.chromium.base.annotations.CalledByNative;
+import org.chromium.chrome.browser.enhancedbookmarks.BookmarkMatch;
import org.chromium.chrome.browser.profiles.Profile;
import org.chromium.components.bookmarks.BookmarkId;
import org.chromium.components.bookmarks.BookmarkType;
@@ -378,6 +381,20 @@ public class BookmarksBridge {
}
/**
+ * Synchronously gets a list of bookmarks that match the specified search query.
+ * @param query Keyword used for searching bookmarks.
+ * @param maxNumberOfResult Maximum number of result to fetch.
+ * @return List of bookmarks that are related to the given query.
+ */
+ public List<BookmarkMatch> searchBookmarks(String query, int maxNumberOfResult) {
+ List<BookmarkMatch> bookmarkMatches = new ArrayList<BookmarkMatch>();
+ nativeSearchBookmarks(mNativeBookmarksBridge, bookmarkMatches, query,
+ maxNumberOfResult);
+ return bookmarkMatches;
+ }
+
+
+ /**
* Set title of the given bookmark.
*/
public void setBookmarkTitle(BookmarkId id, String title) {
@@ -666,6 +683,25 @@ public class BookmarksBridge {
depthList.add(depth);
}
+ @CalledByNative
+ private static void addToBookmarkMatchList(List<BookmarkMatch> bookmarkMatchList,
+ long id, int type, int[] titleMatchStartPositions,
+ int[] titleMatchEndPositions, int[] urlMatchStartPositions,
+ int[] urlMatchEndPositions) {
+ bookmarkMatchList.add(new BookmarkMatch(new BookmarkId(id, type),
+ createPairsList(titleMatchStartPositions, titleMatchEndPositions),
+ createPairsList(urlMatchStartPositions, urlMatchEndPositions)));
+ }
+
+ private static List<Pair<Integer, Integer>> createPairsList(int[] left, int[] right) {
+ List<Pair<Integer, Integer>> pairList = new ArrayList<Pair<Integer, Integer>>();
+ for (int i = 0; i < left.length; i++) {
+ pairList.add(new Pair<Integer, Integer>(left[i], right[i]));
+ }
+ return pairList;
+ }
+
+
private native BookmarkItem nativeGetBookmarkByID(long nativeBookmarksBridge, long id,
int type);
private native void nativeGetPermanentNodeIDs(long nativeBookmarksBridge,
@@ -710,7 +746,8 @@ public class BookmarksBridge {
private native void nativeEndGroupingUndos(long nativeBookmarksBridge);
private static native boolean nativeIsEnhancedBookmarksFeatureEnabled(Profile profile);
private native void nativeLoadEmptyPartnerBookmarkShimForTesting(long nativeBookmarksBridge);
-
+ private native void nativeSearchBookmarks(long nativeBookmarksBridge,
+ List<BookmarkMatch> bookmarkMatches, String query, int maxNumber);
private native long nativeInit(Profile profile);
private native boolean nativeIsDoingExtensiveChanges(long nativeBookmarksBridge);
private native void nativeDestroy(long nativeBookmarksBridge);

Powered by Google App Engine
This is Rietveld 408576698