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..88b8c500320e350fcfb602b9767c79af956dc7d4 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; |
@@ -77,6 +78,8 @@ class EnhancedBookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.Vie |
} |
}; |
+ private OfflinePageModelObserver mOfflinePageModelObserver; |
+ |
EnhancedBookmarkItemsAdapter(Context context) { |
mContext = context; |
@@ -272,6 +275,14 @@ 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 offlinePageModelChanged() { |
+ mDelegate.notifyStateChange(EnhancedBookmarkItemsAdapter.this); |
Ian Wen
2015/10/14 23:30:01
1. Is offline model change capable of removing/add
jianli
2015/10/14 23:40:48
We need to call notifyStateChange, since relayout
Ian Wen
2015/10/15 00:02:16
Hmm I saw another CL that adds delete signals to t
jianli
2015/10/15 00:05:26
Yes, we need it for undoing the bookmark deletion
|
+ } |
+ }; |
+ offlinePageBridge.addObserver(mOfflinePageModelObserver); |
+ |
mOfflineStorageHeader = new OfflinePageStorageSpaceHeader( |
mContext, offlinePageBridge, new OfflinePageFreeUpSpaceCallback() { |
@Override |
@@ -295,7 +306,10 @@ class EnhancedBookmarkItemsAdapter extends RecyclerView.Adapter<RecyclerView.Vie |
mDelegate.removeUIObserver(this); |
mDelegate.getModel().removeObserver(mBookmarkModelObserver); |
mPromoHeaderManager.destroy(); |
- if (mOfflineStorageHeader != null) { |
+ |
+ OfflinePageBridge offlinePageBridge = mDelegate.getModel().getOfflinePageBridge(); |
+ if (offlinePageBridge != null) { |
+ offlinePageBridge.removeObserver(mOfflinePageModelObserver); |
mOfflineStorageHeader.destroy(); |
} |
} |