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

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItemsAdapter.java

Issue 1397233002: [Offline pages] Detecting missing offline copy (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding tests and fixing memory bots Created 5 years, 2 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/enhancedbookmarks/EnhancedBookmarkItemsAdapter.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItemsAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItemsAdapter.java
index 8581b8ddd34c598c9e7ebffbd1058fa098160efb..b250fc56f1b0e5035206524815dc9cff6c2a6417 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItemsAdapter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/enhancedbookmarks/EnhancedBookmarkItemsAdapter.java
@@ -18,6 +18,7 @@ import org.chromium.chrome.browser.BookmarksBridge.BookmarkModelObserver;
import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkManager.UIState;
import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkPromoHeader.PromoHeaderShowingChangeListener;
import org.chromium.chrome.browser.offlinepages.OfflinePageBridge;
+import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.OfflinePageModelObserver;
import org.chromium.chrome.browser.offlinepages.OfflinePageFreeUpSpaceCallback;
import org.chromium.chrome.browser.offlinepages.OfflinePageFreeUpSpaceDialog;
import org.chromium.chrome.browser.offlinepages.OfflinePageStorageSpaceHeader;
@@ -51,6 +52,7 @@ class EnhancedBookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.Vie
private List<Object> mBookmarkDividerSection = new ArrayList<>();
private List<BookmarkId> mBookmarkSection = new ArrayList<>();
+ private OfflinePageModelObserver mOfflinePageModelObserver;
private BookmarkModelObserver mBookmarkModelObserver = new BookmarkModelObserver() {
@Override
public void bookmarkNodeChanged(BookmarkItem node) {
@@ -272,6 +274,22 @@ class EnhancedBookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.Vie
mPromoHeaderManager = new EnhancedBookmarkPromoHeader(mContext, this);
OfflinePageBridge offlinePageBridge = mDelegate.getModel().getOfflinePageBridge();
if (offlinePageBridge != null) {
+ mOfflinePageModelObserver = new OfflinePageModelObserver() {
+ @Override
+ public void offlinePageModelLoaded() {}
+
+ @Override
+ public void offlinePageDeleted(BookmarkId bookmarkId) {
+ if (mDelegate.getCurrentState() == UIState.STATE_FILTER) {
+ int deletedPosition = getPositionForBookmark(bookmarkId);
+ if (deletedPosition >= 0) {
+ removeItem(deletedPosition);
+ }
+ }
+ }
+ };
+ offlinePageBridge.addObserver(mOfflinePageModelObserver);
+
mOfflineStorageHeader = new OfflinePageStorageSpaceHeader(
mContext, offlinePageBridge, new OfflinePageFreeUpSpaceCallback() {
@Override
@@ -294,6 +312,10 @@ class EnhancedBookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.Vie
public void onDestroy() {
mDelegate.removeUIObserver(this);
mDelegate.getModel().removeObserver(mBookmarkModelObserver);
+ if (mDelegate.getModel().getOfflinePageBridge() != null) {
jianli 2015/10/13 00:17:53 nit: please cache OfflinePageBridge instance.
fgorski 2015/10/13 17:39:58 Done.
+ mDelegate.getModel().getOfflinePageBridge().removeObserver(mOfflinePageModelObserver);
+ }
+
mPromoHeaderManager.destroy();
if (mOfflineStorageHeader != null) {
jianli 2015/10/13 00:17:53 Please move this piece to OfflinePageBridge block
fgorski 2015/10/13 17:39:58 Done.
mOfflineStorageHeader.destroy();
@@ -315,6 +337,7 @@ class EnhancedBookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.Vie
public void onFilterStateSet(EnhancedBookmarkFilter filter) {
assert filter == EnhancedBookmarkFilter.OFFLINE_PAGES;
setBookmarks(null, mDelegate.getModel().getBookmarkIDsByFilter(filter));
+ mDelegate.getModel().getOfflinePageBridge().checkOfflinePageMetadata();
}
@Override

Powered by Google App Engine
This is Rietveld 408576698