Chromium Code Reviews| 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 20b930a6a5da660478b1ee618c7efe7bdb5e3c68..51bd2235c8617182f9aea2641a8361f6ce447645 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); |
| } |
| @@ -59,7 +71,7 @@ public final class EnhancedBookmarksBridge { |
| * @param observer Observer to add |
| */ |
| public void addFiltersObserver(FiltersObserver observer) { |
| - mObservers.addObserver(observer); |
| + mFilterObservers.addObserver(observer); |
| } |
| /** |
| @@ -67,7 +79,7 @@ public final class EnhancedBookmarksBridge { |
| * @param observer Observer to remove |
| */ |
| public void removeFiltersObserver(FiltersObserver observer) { |
| - mObservers.removeObserver(observer); |
| + mFilterObservers.removeObserver(observer); |
| } |
| /** |
| @@ -82,6 +94,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 Registers a SearchObserver that listens to search request updates. |
|
Kibeom Kim (inactive)
2014/10/30 03:13:11
Remove "Registers" ?
Ian Wen
2014/10/30 04:31:00
Done.
|
| + * @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() { |
| @@ -92,12 +140,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)); |
| } |
| @@ -110,5 +170,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 void nativeSendSearchRequest(long nativeEnhancedBookmarksBridge, String query); |
| } |