| Index: chrome/android/java/src/org/chromium/chrome/browser/EnhancedBookmarksBridge.java
|
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/EnhancedBookmarksBridge.java b/chrome/android/java/src/org/chromium/chrome/browser/EnhancedBookmarksBridge.java
|
| index c0fa6d7be2cf7caa7c21cacd547d1ed4979b4ee0..98859f10af178627725cdc0a5c975dfc13153588 100644
|
| --- a/chrome/android/java/src/org/chromium/chrome/browser/EnhancedBookmarksBridge.java
|
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/EnhancedBookmarksBridge.java
|
| @@ -20,20 +20,32 @@ import java.util.List;
|
| @JNINamespace("enhanced_bookmarks::android")
|
| public final class EnhancedBookmarksBridge {
|
| private long mNativeEnhancedBookmarksBridge;
|
| - private final ObserverList<FiltersObserver> mObservers =
|
| + private final ObserverList<FiltersObserver> mFilterObservers =
|
| new ObserverList<FiltersObserver>();
|
| + private final ObserverList<SearchServiceObserver> mSearchObservers =
|
| + new ObserverList<SearchServiceObserver>();
|
|
|
| /**
|
| * Interface to provide consumers notifications to changes in clusters
|
| */
|
| public interface FiltersObserver {
|
| /**
|
| - * Invoked when client detects that filters have been
|
| - * added / removed from the server.
|
| + * Invoked when client detects that filters have been added/removed from the server.
|
| */
|
| void onFiltersChanged();
|
| }
|
|
|
| + /**
|
| + * Interface to provide consumers notifications to changes in search service results.
|
| + */
|
| + public interface SearchServiceObserver {
|
| + /**
|
| + * Invoked when client detects that search results have been updated. This callback is
|
| + * guaranteed to be called only once and only for the most recent query.
|
| + */
|
| + void onSearchResultsReturned();
|
| + }
|
| +
|
| public EnhancedBookmarksBridge(Profile profile) {
|
| mNativeEnhancedBookmarksBridge = nativeInit(profile);
|
| }
|
| @@ -92,7 +104,7 @@ public final class EnhancedBookmarksBridge {
|
| * @param observer Observer to add
|
| */
|
| public void addFiltersObserver(FiltersObserver observer) {
|
| - mObservers.addObserver(observer);
|
| + mFilterObservers.addObserver(observer);
|
| }
|
|
|
| /**
|
| @@ -100,7 +112,7 @@ public final class EnhancedBookmarksBridge {
|
| * @param observer Observer to remove
|
| */
|
| public void removeFiltersObserver(FiltersObserver observer) {
|
| - mObservers.removeObserver(observer);
|
| + mFilterObservers.removeObserver(observer);
|
| }
|
|
|
| /**
|
| @@ -115,6 +127,42 @@ public final class EnhancedBookmarksBridge {
|
| }
|
|
|
| /**
|
| + * Sends request to search server for querying related bookmarks.
|
| + * @param query Keyword used to find related bookmarks.
|
| + */
|
| + public void sendSearchRequest(String query) {
|
| + nativeSendSearchRequest(mNativeEnhancedBookmarksBridge, query);
|
| + }
|
| +
|
| + /**
|
| + * Get list of bookmarks as result of a search request that was sent before in
|
| + * {@link EnhancedBookmarksBridge#sendSearchRequest(String)}. Normally this function should be
|
| + * called after {@link SearchServiceObserver#onSearchResultsReturned()}
|
| + * @param query Keyword used to find related bookmarks.
|
| + * @return List of BookmarkIds that are related to query. It will be null if the request is
|
| + * still on the fly, or empty list if there are no results for the query.
|
| + */
|
| + public List<BookmarkId> getSearchResultsForQuery(String query) {
|
| + return nativeGetSearchResults(mNativeEnhancedBookmarksBridge, query);
|
| + }
|
| +
|
| + /**
|
| + * Registers a SearchObserver that listens to search request updates.
|
| + * @param observer Observer to add
|
| + */
|
| + public void addSearchObserver(SearchServiceObserver observer) {
|
| + mSearchObservers.addObserver(observer);
|
| + }
|
| +
|
| + /**
|
| + * Unregisters a SearchObserver that listens to search request updates.
|
| + * @param observer Observer to remove
|
| + */
|
| + public void removeSearchObserver(SearchServiceObserver observer) {
|
| + mSearchObservers.removeObserver(observer);
|
| + }
|
| +
|
| + /**
|
| * @return Current set of known auto-filters for bookmarks.
|
| */
|
| public List<String> getFilters() {
|
| @@ -125,12 +173,24 @@ public final class EnhancedBookmarksBridge {
|
|
|
| @CalledByNative
|
| private void onFiltersChanged() {
|
| - for (FiltersObserver observer : mObservers) {
|
| + for (FiltersObserver observer : mFilterObservers) {
|
| observer.onFiltersChanged();
|
| }
|
| }
|
|
|
| @CalledByNative
|
| + private void onSearchResultReturned() {
|
| + for (SearchServiceObserver observer : mSearchObservers) {
|
| + observer.onSearchResultsReturned();
|
| + }
|
| + }
|
| +
|
| + @CalledByNative
|
| + private static List<BookmarkId> createBookmarkIdList() {
|
| + return new ArrayList<BookmarkId>();
|
| + }
|
| +
|
| + @CalledByNative
|
| private static void addToBookmarkIdList(List<BookmarkId> bookmarkIdList, long id, int type) {
|
| bookmarkIdList.add(new BookmarkId(id, type));
|
| }
|
| @@ -143,6 +203,8 @@ public final class EnhancedBookmarksBridge {
|
| int type, String description);
|
| private native void nativeGetBookmarksForFilter(long nativeEnhancedBookmarksBridge,
|
| String filter, List<BookmarkId> list);
|
| + private native List<BookmarkId> nativeGetSearchResults(long nativeEnhancedBookmarksBridge,
|
| + String query);
|
| private native String[] nativeGetFilters(long nativeEnhancedBookmarksBridge);
|
| private native BookmarkId nativeAddFolder(long nativeEnhancedBookmarksBridge, BookmarkId parent,
|
| int index, String title);
|
| @@ -150,5 +212,5 @@ public final class EnhancedBookmarksBridge {
|
| BookmarkId bookmarkId, BookmarkId newParentId, int index);
|
| private native BookmarkId nativeAddBookmark(long nativeEnhancedBookmarksBridge,
|
| BookmarkId parent, int index, String title, String url);
|
| -
|
| + private native void nativeSendSearchRequest(long nativeEnhancedBookmarksBridge, String query);
|
| }
|
|
|