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() { | |
279 @Override | |
280 public void offlinePageModelChanged() { | |
281 mDelegate.notifyStateChange(EnhancedBookmarkItemsAdapter.thi s); | |
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
| |
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 |