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

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

Issue 1367063004: Support undoing offline page deletion (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: One more change 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 unified diff | Download patch
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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
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 }
OLDNEW
« no previous file with comments | « no previous file | chrome/android/java/src/org/chromium/chrome/browser/offlinepages/OfflinePageBridge.java » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698