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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/history/HistoryManager.java

Issue 2751583002: 🏡 Show correct BottomSheetContent toolbar when contents swapped (Closed)
Patch Set: Changes from mdjones@ review Created 3 years, 9 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
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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.history; 5 package org.chromium.chrome.browser.history;
6 6
7 import android.app.Activity; 7 import android.app.Activity;
8 import android.app.ActivityManager; 8 import android.app.ActivityManager;
9 import android.content.ComponentName; 9 import android.content.ComponentName;
10 import android.content.Context; 10 import android.content.Context;
11 import android.content.Intent; 11 import android.content.Intent;
12 import android.graphics.Rect; 12 import android.graphics.Rect;
13 import android.net.Uri; 13 import android.net.Uri;
14 import android.provider.Browser; 14 import android.provider.Browser;
15 import android.support.annotation.Nullable;
16 import android.support.annotation.VisibleForTesting; 15 import android.support.annotation.VisibleForTesting;
17 import android.support.graphics.drawable.VectorDrawableCompat; 16 import android.support.graphics.drawable.VectorDrawableCompat;
18 import android.support.v7.widget.LinearLayoutManager; 17 import android.support.v7.widget.LinearLayoutManager;
19 import android.support.v7.widget.RecyclerView; 18 import android.support.v7.widget.RecyclerView;
20 import android.support.v7.widget.RecyclerView.OnScrollListener; 19 import android.support.v7.widget.RecyclerView.OnScrollListener;
20 import android.support.v7.widget.Toolbar;
21 import android.support.v7.widget.Toolbar.OnMenuItemClickListener; 21 import android.support.v7.widget.Toolbar.OnMenuItemClickListener;
22 import android.view.LayoutInflater; 22 import android.view.LayoutInflater;
23 import android.view.MenuItem; 23 import android.view.MenuItem;
24 import android.view.View;
25 import android.view.ViewGroup; 24 import android.view.ViewGroup;
26 import android.widget.TextView; 25 import android.widget.TextView;
27 26
28 import org.chromium.base.ApiCompatibilityUtils; 27 import org.chromium.base.ApiCompatibilityUtils;
29 import org.chromium.base.ContextUtils; 28 import org.chromium.base.ContextUtils;
30 import org.chromium.base.metrics.RecordHistogram; 29 import org.chromium.base.metrics.RecordHistogram;
31 import org.chromium.base.metrics.RecordUserAction; 30 import org.chromium.base.metrics.RecordUserAction;
32 import org.chromium.chrome.R; 31 import org.chromium.chrome.R;
33 import org.chromium.chrome.browser.IntentHandler; 32 import org.chromium.chrome.browser.IntentHandler;
34 import org.chromium.chrome.browser.NativePage;
35 import org.chromium.chrome.browser.document.ChromeLauncherActivity; 33 import org.chromium.chrome.browser.document.ChromeLauncherActivity;
36 import org.chromium.chrome.browser.favicon.LargeIconBridge; 34 import org.chromium.chrome.browser.favicon.LargeIconBridge;
37 import org.chromium.chrome.browser.preferences.PreferencesLauncher; 35 import org.chromium.chrome.browser.preferences.PreferencesLauncher;
38 import org.chromium.chrome.browser.profiles.Profile; 36 import org.chromium.chrome.browser.profiles.Profile;
39 import org.chromium.chrome.browser.signin.SigninManager; 37 import org.chromium.chrome.browser.signin.SigninManager;
40 import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver; 38 import org.chromium.chrome.browser.signin.SigninManager.SignInStateObserver;
41 import org.chromium.chrome.browser.snackbar.Snackbar; 39 import org.chromium.chrome.browser.snackbar.Snackbar;
42 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController; 40 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController;
43 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable; 41 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarManageable;
44 import org.chromium.chrome.browser.util.IntentUtils; 42 import org.chromium.chrome.browser.util.IntentUtils;
(...skipping 14 matching lines...) Expand all
59 SnackbarController { 57 SnackbarController {
60 private static final int FAVICON_MAX_CACHE_SIZE_BYTES = 10 * 1024 * 1024; // 10MB 58 private static final int FAVICON_MAX_CACHE_SIZE_BYTES = 10 * 1024 * 1024; // 10MB
61 private static final int MEGABYTES_TO_BYTES = 1024 * 1024; 59 private static final int MEGABYTES_TO_BYTES = 1024 * 1024;
62 private static final String METRICS_PREFIX = "Android.HistoryPage."; 60 private static final String METRICS_PREFIX = "Android.HistoryPage.";
63 61
64 private static HistoryProvider sProviderForTests; 62 private static HistoryProvider sProviderForTests;
65 63
66 private final int mListItemLateralShadowSizePx; 64 private final int mListItemLateralShadowSizePx;
67 65
68 private final Activity mActivity; 66 private final Activity mActivity;
69 private final boolean mIsDisplayedInNativePage; 67 private final boolean mIsFullscreenActivity;
70 private final SelectableListLayout<HistoryItem> mSelectableListLayout; 68 private final SelectableListLayout<HistoryItem> mSelectableListLayout;
71 private final HistoryAdapter mHistoryAdapter; 69 private final HistoryAdapter mHistoryAdapter;
72 private final SelectionDelegate<HistoryItem> mSelectionDelegate; 70 private final SelectionDelegate<HistoryItem> mSelectionDelegate;
73 private final HistoryManagerToolbar mToolbar; 71 private final HistoryManagerToolbar mToolbar;
74 private final TextView mEmptyView; 72 private final TextView mEmptyView;
75 private final RecyclerView mRecyclerView; 73 private final RecyclerView mRecyclerView;
76 private LargeIconBridge mLargeIconBridge; 74 private LargeIconBridge mLargeIconBridge;
77 75
78 private boolean mIsSearching; 76 private boolean mIsSearching;
79 77
80 /** 78 /**
81 * Creates a new HistoryManager. 79 * Creates a new HistoryManager.
82 * @param activity The Activity associated with the HistoryManager. 80 * @param activity The Activity associated with the HistoryManager.
81 * @param isFullscreenActivity Whether the history UI will be shown in a ful lscreen activity.
gone 2017/03/15 17:21:15 Ambiguous... Chrome Home is still inside a full sc
Theresa 2017/03/16 18:15:16 Done. Changed this to "separate activity".
83 */ 82 */
84 @SuppressWarnings("unchecked") // mSelectableListLayout 83 @SuppressWarnings("unchecked") // mSelectableListLayout
85 public HistoryManager(Activity activity, @Nullable NativePage nativePage) { 84 public HistoryManager(Activity activity, boolean isFullscreenActivity) {
86 mActivity = activity; 85 mActivity = activity;
87 mIsDisplayedInNativePage = nativePage != null; 86 mIsFullscreenActivity = isFullscreenActivity;
88 87
89 mSelectionDelegate = new SelectionDelegate<>(); 88 mSelectionDelegate = new SelectionDelegate<>();
90 mSelectionDelegate.addObserver(this); 89 mSelectionDelegate.addObserver(this);
91 mHistoryAdapter = new HistoryAdapter(mSelectionDelegate, this, 90 mHistoryAdapter = new HistoryAdapter(mSelectionDelegate, this,
92 sProviderForTests != null ? sProviderForTests : new BrowsingHist oryBridge()); 91 sProviderForTests != null ? sProviderForTests : new BrowsingHist oryBridge());
93 92
94 // 1. Create SelectableListLayout. 93 // 1. Create SelectableListLayout.
95 mSelectableListLayout = 94 mSelectableListLayout =
96 (SelectableListLayout<HistoryItem>) LayoutInflater.from(activity ).inflate( 95 (SelectableListLayout<HistoryItem>) LayoutInflater.from(activity ).inflate(
97 R.layout.history_main, null); 96 R.layout.history_main, null);
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 } 157 }
159 }}); 158 }});
160 159
161 // 9. Listen to changes in sign in state. 160 // 9. Listen to changes in sign in state.
162 SigninManager.get(mActivity).addSignInStateObserver(this); 161 SigninManager.get(mActivity).addSignInStateObserver(this);
163 162
164 recordUserAction("Show"); 163 recordUserAction("Show");
165 } 164 }
166 165
167 /** 166 /**
168 * @return Whether the history manager UI is displayed in a native page. 167 * @return Whether the history manager UI is displayed in a fullscreen activ ity.
169 */ 168 */
170 public boolean isDisplayedInNativePage() { 169 public boolean isDisplayedInFullScreenActivity() {
171 return mIsDisplayedInNativePage; 170 return mIsFullscreenActivity;
172 } 171 }
173 172
174 @Override 173 @Override
175 public boolean onMenuItemClick(MenuItem item) { 174 public boolean onMenuItemClick(MenuItem item) {
176 mToolbar.hideOverflowMenu(); 175 mToolbar.hideOverflowMenu();
177 176
178 if (item.getItemId() == R.id.close_menu_id && !isDisplayedInNativePage() ) { 177 if (item.getItemId() == R.id.close_menu_id && isDisplayedInFullScreenAct ivity()) {
179 mActivity.finish(); 178 mActivity.finish();
180 return true; 179 return true;
181 } else if (item.getItemId() == R.id.selection_mode_open_in_new_tab) { 180 } else if (item.getItemId() == R.id.selection_mode_open_in_new_tab) {
182 openItemsInNewTabs(mSelectionDelegate.getSelectedItems(), false); 181 openItemsInNewTabs(mSelectionDelegate.getSelectedItems(), false);
183 mSelectionDelegate.clearSelection(); 182 mSelectionDelegate.clearSelection();
184 return true; 183 return true;
185 } else if (item.getItemId() == R.id.selection_mode_copy_link) { 184 } else if (item.getItemId() == R.id.selection_mode_copy_link) {
186 recordUserActionWithOptionalSearch("CopyLink"); 185 recordUserActionWithOptionalSearch("CopyLink");
187 Clipboard clipboard = new Clipboard(mActivity); 186 Clipboard clipboard = new Clipboard(mActivity);
188 clipboard.setText(mSelectionDelegate.getSelectedItems().get(0).getUr l()); 187 clipboard.setText(mSelectionDelegate.getSelectedItems().get(0).getUr l());
(...skipping 28 matching lines...) Expand all
217 } 216 }
218 217
219 /** 218 /**
220 * @return The view that shows the main browsing history UI. 219 * @return The view that shows the main browsing history UI.
221 */ 220 */
222 public ViewGroup getView() { 221 public ViewGroup getView() {
223 return mSelectableListLayout; 222 return mSelectableListLayout;
224 } 223 }
225 224
226 /** 225 /**
227 * See {@link SelectableListLayout#detachContentView()}. 226 * See {@link SelectableListLayout#detachToolbarView()}.
228 */ 227 */
229 public View detachContentView() { 228 public Toolbar detachToolbarView() {
230 return mSelectableListLayout.detachContentView(); 229 return mSelectableListLayout.detachToolbarView();
231 } 230 }
232 231
233 /** 232 /**
234 * @return The vertical scroll offset of the content view. 233 * @return The vertical scroll offset of the content view.
235 */ 234 */
236 public int getVerticalScrollOffset() { 235 public int getVerticalScrollOffset() {
237 return mRecyclerView.computeVerticalScrollOffset(); 236 return mRecyclerView.computeVerticalScrollOffset();
238 } 237 }
239 238
240 /** 239 /**
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 @Override 430 @Override
432 public void onAction(Object actionData) { 431 public void onAction(Object actionData) {
433 // Handler for the link copied snackbar. Do nothing. 432 // Handler for the link copied snackbar. Do nothing.
434 } 433 }
435 434
436 @Override 435 @Override
437 public void onDismissNoAction(Object actionData) { 436 public void onDismissNoAction(Object actionData) {
438 // Handler for the link copied snackbar. Do nothing. 437 // Handler for the link copied snackbar. Do nothing.
439 } 438 }
440 } 439 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698