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

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

Issue 1141283003: Upstream oodles of Chrome for Android code into Chromium. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: final patch? Created 5 years, 7 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
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 package org.chromium.chrome.browser.enhancedbookmarks;
6
7 import android.content.Context;
8
9 import com.google.android.apps.chrome.R;
10
11 import org.chromium.chrome.browser.BookmarksBridge.BookmarkItem;
12 import org.chromium.chrome.browser.BookmarksBridge.BookmarkModelObserver;
13 import org.chromium.chrome.browser.enhanced_bookmarks.EnhancedBookmarksModel;
14 import org.chromium.chrome.browser.enhanced_bookmarks.EnhancedBookmarksModel.Enh ancedBookmarkDeleteObserver;
15 import org.chromium.chrome.browser.snackbar.SnackbarManager;
16
17 import java.util.Locale;
18
19 /**
20 * Shows an undo bar when the user modifies enhanced bookmarks,
21 * allowing them to undo their changes.
22 * TODO(danduong): Add move undo
23 */
24 public class EnhancedBookmarkUndoController extends BookmarkModelObserver implem ents
25 SnackbarManager.SnackbarController, EnhancedBookmarkDeleteObserver {
26
27 private final EnhancedBookmarksModel mBookmarksModel;
28 private final SnackbarManager mSnackbarManager;
29 private final Context mContext;
30
31 /**
32 * Creates an instance of {@link EnhancedBookmarkUndoController}.
33 * @param context The {@link Context} in which snackbar is shown.
34 * @param model The enhanced bookmark model.
35 * @param snackbarManager SnackManager passed from activity.
36 */
37 public EnhancedBookmarkUndoController(Context context, EnhancedBookmarksMode l model,
38 SnackbarManager snackbarManager) {
39 mBookmarksModel = model;
40 mBookmarksModel.addDeleteObserver(this);
41 mSnackbarManager = snackbarManager;
42 mContext = context;
43 }
44
45 /**
46 * Cleans up this class, unregistering for application notifications from bo okmark model.
47 */
48 public void destroy() {
49 mBookmarksModel.removeDeleteObserver(this);
50 }
51
52 @Override
53 public void onAction(Object actionData) {
54 mBookmarksModel.undo();
55 mSnackbarManager.dismissSnackbar(false);
56 }
57
58 @Override
59 public void onDismissNoAction(Object actionData) {
60 }
61
62 @Override
63 public void onDismissForEachType(boolean isTimeout) {
64 }
65
66 // Overriding BookmarkModelObserver
67 @Override
68 public void bookmarkModelChanged() {
69 // TODO(danduong): dismiss snackbar only when needed
70 mSnackbarManager.dismissSnackbar(false);
71 }
72
73 @Override
74 public void bookmarkNodeChanged(BookmarkItem node) {
75 // Title/url change of a bookmark should not affect undo.
76 }
77
78 @Override
79 public void bookmarkNodeAdded(BookmarkItem parent, int index) {
80 // Adding a new bookmark should not affect undo.
81 }
82
83 // Implement EnhancedBookmarkDeleteObserver
84 @Override
85 public void onDeleteBookmarks(String[] titles, boolean isUndoable) {
86 assert titles != null && titles.length >= 1;
87
88 if (!isUndoable) return;
89
90 if (titles.length == 1) {
91 mSnackbarManager.showSnackbar(mContext.getString(R.string.undo_bar_d elete_message),
92 titles[0], mContext.getString(R.string.undo_bar_button_text) ,
93 null, this);
94 } else {
95 mSnackbarManager.showSnackbar(
96 mContext.getString(R.string.undo_bar_multiple_delete_message ),
97 String.format(Locale.getDefault(), "%d", titles.length),
98 mContext.getString(R.string.undo_bar_button_text), null, thi s);
99 }
100 }
101 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698