Chromium Code Reviews| 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 |