Chromium Code Reviews| 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. |
| + */ |
|
Kibeom Kim (inactive)
2015/08/10 09:02:47
Q: wasn't this an async API before?
Ian Wen
2015/08/12 00:09:26
This particular API has always been async. It uses
|
| + 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); |