| 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 4bfab9c800fbb9f7aa10f7a4aedf36ae903e352b..728436ffac2befba7bb710dfdeebc3df57376244 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
|
| @@ -49,6 +49,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.
|
| @@ -280,30 +292,32 @@ 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) {
|
| - assert filter == BookmarkFilter.OFFLINE_PAGES;
|
| + public void getOfflineBookmarkIds(final GetOfflineBookmarkIdsCallback callback) {
|
| assert mOfflinePageBridge != null;
|
|
|
| - List<OfflinePageItem> offlinePages = mOfflinePageBridge.getAllPages();
|
| - Collections.sort(offlinePages, sOfflinePageComparator);
|
| + mOfflinePageBridge.getAllPages(new OfflinePageBridge.GetAllPagesCallback() {
|
| + @Override
|
| + public void onGetAllPagesDone(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());
|
| + // 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) {
|
| - if (existingBookmarks.contains(offlinePage.getBookmarkId())) {
|
| - bookmarkIds.add(offlinePage.getBookmarkId());
|
| + List<BookmarkId> bookmarkIds = new ArrayList<BookmarkId>();
|
| + for (OfflinePageItem offlinePage : offlinePages) {
|
| + if (existingBookmarks.contains(offlinePage.getBookmarkId())) {
|
| + bookmarkIds.add(offlinePage.getBookmarkId());
|
| + }
|
| + }
|
| + callback.onGetOfflineBookmarkIdsDone(bookmarkIds);
|
| }
|
| - }
|
| - return bookmarkIds;
|
| + });
|
| }
|
|
|
| /**
|
|
|