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

Side by Side Diff: chrome/android/java_staging/src/org/chromium/chrome/browser/widget/findinpage/FindToolbarManager.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.widget.findinpage;
6
7 import android.app.Activity;
8 import android.view.ActionMode;
9 import android.view.View;
10 import android.view.ViewStub;
11
12 import org.chromium.base.ObserverList;
13 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
14 import org.chromium.ui.base.DeviceFormFactor;
15
16 /**
17 * Manages the interactions with the find toolbar.
18 */
19 public class FindToolbarManager {
20 private FindToolbar mFindToolbar;
21 private final Activity mActivity;
22 private final TabModelSelector mTabModelSelector;
23 private final ActionMode.Callback mCallback;
24 private final ObserverList<FindToolbarObserver> mObservers;
25
26 /**
27 * Creates an instance of a {@link FindToolbarManager}.
28 * @param activity An Activity that represents a parent of the {@link androi d.view.ViewStub}.
29 * @param selector The {@link TabModelSelector} that will interact with the {@link FindToolbar}.
30 * @param callback The ActionMode.Callback that will be used when selection occurs on the
31 * {@link FindToolbar}.
32 */
33 public FindToolbarManager(
34 Activity activity, TabModelSelector selector, ActionMode.Callback ca llback) {
35 mActivity = activity;
36 mTabModelSelector = selector;
37 mCallback = callback;
38 mObservers = new ObserverList<FindToolbarObserver>();
39 }
40
41 /**
42 * @return Whether the find toolbar is currently showing.
43 */
44 public boolean isShowing() {
45 return mFindToolbar != null && mFindToolbar.getVisibility() == View.VISI BLE;
46 }
47
48 /**
49 * Hides the toolbar.
50 */
51 public void hideToolbar() {
52 if (mFindToolbar == null) return;
53
54 mFindToolbar.deactivate();
55 }
56
57 /**
58 * Shows the toolbar if it's not already visible otherwise activates.
59 */
60 public void showToolbar() {
61 if (mFindToolbar == null) {
62 int stubId = com.google.android.apps.chrome.R.id.find_toolbar_stub;
63 if (DeviceFormFactor.isTablet(mActivity)) {
64 stubId = com.google.android.apps.chrome.R.id.find_toolbar_tablet _stub;
65 }
66 mFindToolbar = (FindToolbar) ((ViewStub) mActivity.findViewById(stub Id)).inflate();
67 mFindToolbar.setTabModelSelector(mTabModelSelector);
68 mFindToolbar.setActionModeCallbackForTextEdit(mCallback);
69 mFindToolbar.setObserver(new FindToolbarObserver() {
70 @Override
71 public void onFindToolbarShown() {
72 for (FindToolbarObserver observer : mObservers) {
73 observer.onFindToolbarShown();
74 }
75 }
76
77 @Override
78 public void onFindToolbarHidden() {
79 for (FindToolbarObserver observer : mObservers) {
80 observer.onFindToolbarHidden();
81 }
82 }
83 });
84 }
85
86 mFindToolbar.activate();
87 }
88
89 /**
90 * Add an observer for find in page changes.
91 */
92 public void addObserver(FindToolbarObserver observer) {
93 mObservers.addObserver(observer);
94 }
95
96 /**
97 * Remove an observer for find in page changes.
98 */
99 public void removeObserver(FindToolbarObserver observer) {
100 mObservers.removeObserver(observer);
101 }
102 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698