Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java |
| index 973532320b771c715c11634c7a76b52310a3cfb7..32240e5deca315ff137ee482e603c3942441d77e 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkModel.java |
| @@ -50,6 +50,18 @@ public class BookmarkModel extends BookmarkBridge { |
| } |
| /** |
| + * Callback for use with getOfflineBookmarkIds. |
| + */ |
| + public interface GetOfflineBookmarkIdsCallback { |
| + /** |
| + * Called on completion of a |getOfflineBookmarkIds| operation. |
| + * |
| + * @param bookmarkIds A list of all the offlined bookmark IDs. |
| + */ |
| + public void onGetOfflineBookmarkIdsDone(List<BookmarkId> bookmarkIds); |
| + } |
| + |
| + /** |
| * Observer that listens to delete event. This interface is used by undo controllers to know |
| * which bookmarks were deleted. Note this observer only listens to events that go through |
| * bookmark model. |
| @@ -282,31 +294,34 @@ public class BookmarkModel extends BookmarkBridge { |
| } |
| /** |
| - * Gets a list of bookmark IDs of bookmarks that match a specified filter. |
| + * Gets a list of bookmark IDs for all offline pages. |
| * |
| - * @param filter Filter to be applied to the bookmarks. |
| - * @return A list of bookmark IDs of bookmarks matching the filter. |
| + * @return A list of bookmark IDs of bookmarks matching the offline pages filter. |
| */ |
| - public List<BookmarkId> getBookmarkIDsByFilter(BookmarkFilter filter) { |
|
fgorski
2016/03/28 17:58:46
Why are you removing the filter related code?
You
dewittj
2016/04/07 17:41:52
Done.
|
| - assert filter == BookmarkFilter.OFFLINE_PAGES; |
| + public void getOfflineBookmarkIds(final GetOfflineBookmarkIdsCallback callback) { |
| assert mOfflinePageBridge != null; |
| - List<OfflinePageItem> offlinePages = mOfflinePageBridge.getAllPages(); |
| - Collections.sort(offlinePages, sOfflinePageComparator); |
| - |
| - // We are going to filter out all of the offline pages without a matching bookmark. |
| - // http://crbug.com/537806 |
| - HashSet<BookmarkId> existingBookmarks = |
| - new HashSet<BookmarkId>(getAllBookmarkIDsOrderedByCreationDate()); |
| - |
| - List<BookmarkId> bookmarkIds = new ArrayList<BookmarkId>(); |
| - for (OfflinePageItem offlinePage : offlinePages) { |
| - BookmarkId bookmarkId = getBookmarkIdForOfflineClientId(offlinePage.getClientId()); |
| - if (existingBookmarks.contains(bookmarkId)) { |
| - bookmarkIds.add(bookmarkId); |
| + mOfflinePageBridge.getAllPages(new OfflinePageBridge.MultipleOfflinePageItemCallback() { |
| + @Override |
| + public void onGetItems(List<OfflinePageItem> offlinePages) { |
| + Collections.sort(offlinePages, sOfflinePageComparator); |
| + |
| + // We are going to filter out all of the offline pages without a matching bookmark. |
| + // http://crbug.com/537806 |
| + HashSet<BookmarkId> existingBookmarks = |
| + new HashSet<BookmarkId>(getAllBookmarkIDsOrderedByCreationDate()); |
| + |
| + List<BookmarkId> bookmarkIds = new ArrayList<BookmarkId>(); |
| + for (OfflinePageItem offlinePage : offlinePages) { |
| + BookmarkId bookmarkId = |
| + getBookmarkIdForOfflineClientId(offlinePage.getClientId()); |
| + if (existingBookmarks.contains(bookmarkId)) { |
| + bookmarkIds.add(bookmarkId); |
| + } |
| + } |
| + callback.onGetOfflineBookmarkIdsDone(bookmarkIds); |
| } |
| - } |
| - return bookmarkIds; |
| + }); |
| } |
| /** |