Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 package org.chromium.chrome.browser.enhancedbookmarks; | 5 package org.chromium.chrome.browser.enhancedbookmarks; |
| 6 | 6 |
| 7 import android.content.Context; | 7 import android.content.Context; |
| 8 import android.support.v7.widget.RecyclerView; | 8 import android.support.v7.widget.RecyclerView; |
| 9 import android.support.v7.widget.RecyclerView.ViewHolder; | 9 import android.support.v7.widget.RecyclerView.ViewHolder; |
| 10 import android.view.LayoutInflater; | 10 import android.view.LayoutInflater; |
| 11 import android.view.View; | 11 import android.view.View; |
| 12 import android.view.ViewGroup; | 12 import android.view.ViewGroup; |
| 13 | 13 |
| 14 import org.chromium.base.annotations.SuppressFBWarnings; | 14 import org.chromium.base.annotations.SuppressFBWarnings; |
| 15 import org.chromium.chrome.R; | 15 import org.chromium.chrome.R; |
| 16 import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem; | 16 import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem; |
| 17 import org.chromium.chrome.browser.BookmarksBridge.BookmarkModelObserver; | 17 import org.chromium.chrome.browser.BookmarksBridge.BookmarkModelObserver; |
| 18 import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkManager.UIS tate; | 18 import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkManager.UIS tate; |
| 19 import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkPromoHeader .PromoHeaderShowingChangeListener; | 19 import org.chromium.chrome.browser.enhancedbookmarks.EnhancedBookmarkPromoHeader .PromoHeaderShowingChangeListener; |
| 20 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; | 20 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge; |
| 21 import org.chromium.chrome.browser.offlinepages.OfflinePageBridge.OfflinePageMod elObserver; | |
| 21 import org.chromium.chrome.browser.offlinepages.OfflinePageFreeUpSpaceCallback; | 22 import org.chromium.chrome.browser.offlinepages.OfflinePageFreeUpSpaceCallback; |
| 22 import org.chromium.chrome.browser.offlinepages.OfflinePageFreeUpSpaceDialog; | 23 import org.chromium.chrome.browser.offlinepages.OfflinePageFreeUpSpaceDialog; |
| 23 import org.chromium.chrome.browser.offlinepages.OfflinePageStorageSpaceHeader; | 24 import org.chromium.chrome.browser.offlinepages.OfflinePageStorageSpaceHeader; |
| 24 import org.chromium.components.bookmarks.BookmarkId; | 25 import org.chromium.components.bookmarks.BookmarkId; |
| 25 | 26 |
| 26 import java.util.ArrayList; | 27 import java.util.ArrayList; |
| 27 import java.util.List; | 28 import java.util.List; |
| 28 | 29 |
| 29 /** | 30 /** |
| 30 * BaseAdapter for EnhancedBookmarkItemsContainer. It manages bookmarks to list there. | 31 * BaseAdapter for EnhancedBookmarkItemsContainer. It manages bookmarks to list there. |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 70 } | 71 } |
| 71 } | 72 } |
| 72 } | 73 } |
| 73 | 74 |
| 74 @Override | 75 @Override |
| 75 public void bookmarkModelChanged() { | 76 public void bookmarkModelChanged() { |
| 76 mDelegate.notifyStateChange(EnhancedBookmarkItemsAdapter.this); | 77 mDelegate.notifyStateChange(EnhancedBookmarkItemsAdapter.this); |
| 77 } | 78 } |
| 78 }; | 79 }; |
| 79 | 80 |
| 81 private OfflinePageModelObserver mOfflinePageModelObserver; | |
| 82 | |
| 80 EnhancedBookmarkItemsAdapter(Context context) { | 83 EnhancedBookmarkItemsAdapter(Context context) { |
| 81 mContext = context; | 84 mContext = context; |
| 82 | 85 |
| 83 mSections = new ArrayList<>(); | 86 mSections = new ArrayList<>(); |
| 84 mSections.add(mPromoHeaderSection); | 87 mSections.add(mPromoHeaderSection); |
| 85 mSections.add(mOfflineStorageSection); | 88 mSections.add(mOfflineStorageSection); |
| 86 mSections.add(mFolderDividerSection); | 89 mSections.add(mFolderDividerSection); |
| 87 mSections.add(mFolderSection); | 90 mSections.add(mFolderSection); |
| 88 mSections.add(mBookmarkDividerSection); | 91 mSections.add(mBookmarkDividerSection); |
| 89 mSections.add(mBookmarkSection); | 92 mSections.add(mBookmarkSection); |
| (...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 265 // EnhancedBookmarkUIObserver implementations. | 268 // EnhancedBookmarkUIObserver implementations. |
| 266 | 269 |
| 267 @Override | 270 @Override |
| 268 public void onEnhancedBookmarkDelegateInitialized(EnhancedBookmarkDelegate d elegate) { | 271 public void onEnhancedBookmarkDelegateInitialized(EnhancedBookmarkDelegate d elegate) { |
| 269 mDelegate = delegate; | 272 mDelegate = delegate; |
| 270 mDelegate.addUIObserver(this); | 273 mDelegate.addUIObserver(this); |
| 271 mDelegate.getModel().addObserver(mBookmarkModelObserver); | 274 mDelegate.getModel().addObserver(mBookmarkModelObserver); |
| 272 mPromoHeaderManager = new EnhancedBookmarkPromoHeader(mContext, this); | 275 mPromoHeaderManager = new EnhancedBookmarkPromoHeader(mContext, this); |
| 273 OfflinePageBridge offlinePageBridge = mDelegate.getModel().getOfflinePag eBridge(); | 276 OfflinePageBridge offlinePageBridge = mDelegate.getModel().getOfflinePag eBridge(); |
| 274 if (offlinePageBridge != null) { | 277 if (offlinePageBridge != null) { |
| 278 mOfflinePageModelObserver = new OfflinePageModelObserver() { | |
|
Ian Wen
2015/10/13 00:35:04
Q: why a model observer is added to this class? I
jianli
2015/10/13 00:57:05
The model layer doesn't know how to trigger updati
| |
| 279 @Override | |
| 280 public void offlinePageModelChanged() { | |
| 281 mDelegate.notifyStateChange(EnhancedBookmarkItemsAdapter.thi s); | |
| 282 } | |
| 283 }; | |
| 284 offlinePageBridge.addObserver(mOfflinePageModelObserver); | |
| 285 | |
| 275 mOfflineStorageHeader = new OfflinePageStorageSpaceHeader( | 286 mOfflineStorageHeader = new OfflinePageStorageSpaceHeader( |
| 276 mContext, offlinePageBridge, new OfflinePageFreeUpSpaceCallb ack() { | 287 mContext, offlinePageBridge, new OfflinePageFreeUpSpaceCallb ack() { |
| 277 @Override | 288 @Override |
| 278 public void onFreeUpSpaceDone() { | 289 public void onFreeUpSpaceDone() { |
| 279 refreshOfflinePagesFilterView(); | 290 refreshOfflinePagesFilterView(); |
| 280 mDelegate.getSnackbarManager().showSnackbar( | 291 mDelegate.getSnackbarManager().showSnackbar( |
| 281 OfflinePageFreeUpSpaceDialog.createStorageCl earedSnackbar( | 292 OfflinePageFreeUpSpaceDialog.createStorageCl earedSnackbar( |
| 282 mContext)); | 293 mContext)); |
| 283 } | 294 } |
| 284 | 295 |
| 285 @Override | 296 @Override |
| 286 public void onFreeUpSpaceCancelled() { | 297 public void onFreeUpSpaceCancelled() { |
| 287 // No need to refresh, as result outcome should be t he same here. | 298 // No need to refresh, as result outcome should be t he same here. |
| 288 } | 299 } |
| 289 }); | 300 }); |
| 290 } | 301 } |
| 291 } | 302 } |
| 292 | 303 |
| 293 @Override | 304 @Override |
| 294 public void onDestroy() { | 305 public void onDestroy() { |
| 295 mDelegate.removeUIObserver(this); | 306 mDelegate.removeUIObserver(this); |
| 296 mDelegate.getModel().removeObserver(mBookmarkModelObserver); | 307 mDelegate.getModel().removeObserver(mBookmarkModelObserver); |
| 297 mPromoHeaderManager.destroy(); | 308 mPromoHeaderManager.destroy(); |
| 298 if (mOfflineStorageHeader != null) { | 309 |
| 310 OfflinePageBridge offlinePageBridge = mDelegate.getModel().getOfflinePag eBridge(); | |
| 311 if (offlinePageBridge != null) { | |
| 312 offlinePageBridge.removeObserver(mOfflinePageModelObserver); | |
| 299 mOfflineStorageHeader.destroy(); | 313 mOfflineStorageHeader.destroy(); |
| 300 } | 314 } |
| 301 } | 315 } |
| 302 | 316 |
| 303 @Override | 317 @Override |
| 304 public void onAllBookmarksStateSet() { | 318 public void onAllBookmarksStateSet() { |
| 305 setBookmarks(null, mDelegate.getModel().getAllBookmarkIDsOrderedByCreati onDate()); | 319 setBookmarks(null, mDelegate.getModel().getAllBookmarkIDsOrderedByCreati onDate()); |
| 306 } | 320 } |
| 307 | 321 |
| 308 @Override | 322 @Override |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 344 } | 358 } |
| 345 } | 359 } |
| 346 } | 360 } |
| 347 | 361 |
| 348 private void refreshOfflinePagesFilterView() { | 362 private void refreshOfflinePagesFilterView() { |
| 349 if (mDelegate.getCurrentState() != UIState.STATE_FILTER) return; | 363 if (mDelegate.getCurrentState() != UIState.STATE_FILTER) return; |
| 350 setBookmarks(null, | 364 setBookmarks(null, |
| 351 mDelegate.getModel().getBookmarkIDsByFilter(EnhancedBookmarkFilt er.OFFLINE_PAGES)); | 365 mDelegate.getModel().getBookmarkIDsByFilter(EnhancedBookmarkFilt er.OFFLINE_PAGES)); |
| 352 } | 366 } |
| 353 } | 367 } |
| OLD | NEW |