Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(236)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkItemsAdapter.java

Issue 1739503002: Makes the OfflinePageBridge.getAllPages method asynchronous. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
+ }
+ });
}
}

Powered by Google App Engine
This is Rietveld 408576698