Chromium Code Reviews| Index: chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java |
| diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java |
| index 9f89b121345bbf99a62457172c70e0d67940dcb7..aaa7f00c9090c002a2d41791d99a2faecc8c2773 100644 |
| --- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java |
| +++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java |
| @@ -22,6 +22,7 @@ import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.OfflinePageMod |
| import org.chromium.chrome.browser.offlinepages.OfflinePageFreeUpSpaceCallback; |
| import org.chromium.chrome.browser.offlinepages.OfflinePageFreeUpSpaceDialog; |
| import org.chromium.chrome.browser.offlinepages.OfflinePageStorageSpaceHeader; |
| +import org.chromium.chrome.browser.offlinepages.OfflinePageStorageSpacePolicy; |
| import org.chromium.components.bookmarks.BookmarkId; |
| import java.util.ArrayList; |
| @@ -273,7 +274,7 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> |
| mDelegate.addUIObserver(this); |
| mDelegate.getModel().addObserver(mBookmarkModelObserver); |
| mPromoHeaderManager = new BookmarkPromoHeader(mContext, this); |
| - OfflinePageBridge offlinePageBridge = mDelegate.getModel().getOfflinePageBridge(); |
| + final OfflinePageBridge offlinePageBridge = mDelegate.getModel().getOfflinePageBridge(); |
| if (offlinePageBridge != null) { |
| mOfflinePageModelObserver = new OfflinePageModelObserver() { |
| @Override |
| @@ -293,19 +294,30 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> |
| }; |
| offlinePageBridge.addObserver(mOfflinePageModelObserver); |
| - mOfflineStorageHeader = new OfflinePageStorageSpaceHeader( |
| - mContext, offlinePageBridge, new OfflinePageFreeUpSpaceCallback() { |
| - @Override |
| - public void onFreeUpSpaceDone() { |
| - refreshOfflinePagesFilterView(); |
| - mDelegate.getSnackbarManager().showSnackbar( |
| - OfflinePageFreeUpSpaceDialog.createStorageClearedSnackbar( |
| - mContext)); |
| - } |
| - |
| + OfflinePageStorageSpacePolicy.create( |
| + offlinePageBridge, new OfflinePageStorageSpacePolicy.CreateCallback() { |
| @Override |
| - public void onFreeUpSpaceCancelled() { |
| - // No need to refresh, as result outcome should be the same here. |
| + public void onCreateDone(OfflinePageStorageSpacePolicy policy) { |
|
fgorski
2016/02/26 21:31:10
can this callback happen after bookmarksItemAdapte
dewittj
2016/03/01 22:28:52
Anonymous classes automatically reference the clas
|
| + mOfflineStorageHeader = |
| + new OfflinePageStorageSpaceHeader(mContext, offlinePageBridge, |
|
fgorski
2016/02/26 21:31:10
put this in a separate method, it's cleaner
dewittj
2016/03/01 22:28:51
Done.
|
| + policy, new OfflinePageFreeUpSpaceCallback() { |
| + @Override |
| + public void onFreeUpSpaceDone() { |
| + refreshOfflinePagesFilterView(); |
| + mDelegate.getSnackbarManager().showSnackbar( |
| + OfflinePageFreeUpSpaceDialog |
| + .createStorageClearedSnackbar( |
| + mContext)); |
| + } |
| + |
| + @Override |
| + public void onFreeUpSpaceCancelled() { |
| + // No need to refresh, as result outcome should |
| + // be the same here. |
| + } |
| + }); |
| + |
| + updateHeader(); |
| } |
| }); |
| } |
| @@ -320,6 +332,9 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> |
| OfflinePageBridge offlinePageBridge = mDelegate.getModel().getOfflinePageBridge(); |
| if (offlinePageBridge != null) { |
| offlinePageBridge.removeObserver(mOfflinePageModelObserver); |
| + } |
| + |
| + if (mOfflineStorageHeader != null) { |
| mOfflineStorageHeader.destroy(); |
| } |
| } |
| @@ -342,10 +357,17 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> |
| @Override |
| public void onFilterStateSet(BookmarkFilter filter) { |
| assert filter == BookmarkFilter.OFFLINE_PAGES; |
| - List<BookmarkId> bookmarkIds = mDelegate.getModel().getBookmarkIDsByFilter(filter); |
| - RecordHistogram.recordCountHistogram("OfflinePages.OfflinePageCount", bookmarkIds.size()); |
| - setBookmarks(null, mDelegate.getModel().getBookmarkIDsByFilter(filter)); |
| - mDelegate.getModel().getOfflinePageBridge().checkOfflinePageMetadata(); |
| + setBookmarks(null, new ArrayList<BookmarkId>()); |
| + mDelegate.getModel().getOfflineBookmarkIds( |
| + new BookmarkModel.GetOfflineBookmarkIdsCallback() { |
| + @Override |
| + public void onGetOfflineBookmarkIdsDone(List<BookmarkId> bookmarkIds) { |
| + RecordHistogram.recordCountHistogram( |
| + "OfflinePages.OfflinePageCount", bookmarkIds.size()); |
| + setBookmarks(null, bookmarkIds); |
| + mDelegate.getModel().getOfflinePageBridge().checkOfflinePageMetadata(); |
|
fgorski
2016/02/26 21:31:10
this does not need to wait for the read to be comp
dewittj
2016/03/01 22:28:52
Done.
|
| + } |
| + }); |
| } |
| @Override |
| @@ -379,7 +401,13 @@ class BookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> |
| private void refreshOfflinePagesFilterView() { |
| if (mDelegate.getCurrentState() != BookmarkUIState.STATE_FILTER) return; |
| - setBookmarks(null, |
| - mDelegate.getModel().getBookmarkIDsByFilter(BookmarkFilter.OFFLINE_PAGES)); |
| + setBookmarks(null, new ArrayList<BookmarkId>()); |
| + mDelegate.getModel().getOfflineBookmarkIds( |
| + new BookmarkModel.GetOfflineBookmarkIdsCallback() { |
| + @Override |
| + public void onGetOfflineBookmarkIdsDone(List<BookmarkId> bookmarkIds) { |
| + setBookmarks(null, bookmarkIds); |
| + } |
| + }); |
| } |
| } |