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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/LayoutManagerChromeTablet.java

Issue 2774443002: chrome/android: Push EventFilters into the Layout implementations. (Closed)
Patch Set: fix for re-landing Created 3 years, 8 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 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.compositor.layouts; 5 package org.chromium.chrome.browser.compositor.layouts;
6 6
7 import android.content.Context; 7 import android.content.Context;
8 import android.graphics.Bitmap; 8 import android.graphics.Bitmap;
9 import android.graphics.RectF;
10 import android.view.MotionEvent;
11 import android.view.ViewGroup; 9 import android.view.ViewGroup;
12 10
13 import org.chromium.chrome.R; 11 import org.chromium.chrome.R;
14 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; 12 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager;
15 import org.chromium.chrome.browser.compositor.layouts.eventfilter.AreaGestureEve ntFilter;
16 import org.chromium.chrome.browser.compositor.layouts.eventfilter.GestureHandler ;
17 import org.chromium.chrome.browser.compositor.layouts.eventfilter.ScrollDirectio n; 13 import org.chromium.chrome.browser.compositor.layouts.eventfilter.ScrollDirectio n;
18 import org.chromium.chrome.browser.compositor.overlays.strip.StripLayoutHelperMa nager; 14 import org.chromium.chrome.browser.compositor.overlays.strip.StripLayoutHelperMa nager;
19 import org.chromium.chrome.browser.contextualsearch.ContextualSearchManagementDe legate; 15 import org.chromium.chrome.browser.contextualsearch.ContextualSearchManagementDe legate;
20 import org.chromium.chrome.browser.dom_distiller.ReaderModeManagerDelegate; 16 import org.chromium.chrome.browser.dom_distiller.ReaderModeManagerDelegate;
21 import org.chromium.chrome.browser.tab.Tab; 17 import org.chromium.chrome.browser.tab.Tab;
22 import org.chromium.chrome.browser.tabmodel.TabCreatorManager; 18 import org.chromium.chrome.browser.tabmodel.TabCreatorManager;
23 import org.chromium.chrome.browser.tabmodel.TabModel; 19 import org.chromium.chrome.browser.tabmodel.TabModel;
24 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType; 20 import org.chromium.chrome.browser.tabmodel.TabModel.TabLaunchType;
25 import org.chromium.chrome.browser.tabmodel.TabModelSelector; 21 import org.chromium.chrome.browser.tabmodel.TabModelSelector;
26 import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabObserver; 22 import org.chromium.chrome.browser.tabmodel.TabModelSelectorTabObserver;
27 import org.chromium.ui.resources.dynamics.DynamicResourceLoader; 23 import org.chromium.ui.resources.dynamics.DynamicResourceLoader;
28 24
29 import java.util.List; 25 import java.util.List;
30 26
31 /** 27 /**
32 * {@link LayoutManagerChromeTablet} is the specialization of {@link LayoutManag erChrome} for 28 * {@link LayoutManagerChromeTablet} is the specialization of {@link LayoutManag erChrome} for
33 * the tablet. 29 * the tablet.
34 */ 30 */
35 public class LayoutManagerChromeTablet extends LayoutManagerChrome { 31 public class LayoutManagerChromeTablet extends LayoutManagerChrome {
36 // Event Filters
37 private final TabStripEventFilter mTabStripFilter;
38
39 // Internal State 32 // Internal State
40 private final String mDefaultTitle; 33 private final String mDefaultTitle;
41 34
42 private StripLayoutHelperManager mTabStripLayoutHelperManager; 35 private StripLayoutHelperManager mTabStripLayoutHelperManager;
43 private TabModelSelectorTabObserver mTabObserver; 36 private TabModelSelectorTabObserver mTabObserver;
44 37
45 /** 38 /**
46 * Creates an instance of a {@link LayoutManagerChromePhone}. 39 * Creates an instance of a {@link LayoutManagerChromePhone}.
47 * @param host A {@link LayoutManagerHost} instance. 40 * @param host A {@link LayoutManagerHost} instance.
48 */ 41 */
49 public LayoutManagerChromeTablet(LayoutManagerHost host) { 42 public LayoutManagerChromeTablet(LayoutManagerHost host) {
50 super(host, false); 43 super(host, false);
51 Context context = host.getContext(); 44 Context context = host.getContext();
52 45
53 // Build Event Filters 46 mTabStripLayoutHelperManager =
54 mTabStripFilter = 47 new StripLayoutHelperManager(context, this, mHost.getLayoutRende rHost());
55 new TabStripEventFilter(context, new TabStripEventHandler(), nul l, false, false);
56
57 mTabStripLayoutHelperManager = new StripLayoutHelperManager(
58 context, this, mHost.getLayoutRenderHost(), mTabStripFilter);
59 48
60 // Set up state 49 // Set up state
61 mDefaultTitle = context.getString(R.string.tab_loading_default_title); 50 mDefaultTitle = context.getString(R.string.tab_loading_default_title);
62 51
63 52
64 setNextLayout(null); 53 setNextLayout(null);
65 } 54 }
66 55
67 @Override 56 @Override
68 protected void addAllSceneOverlays() { 57 protected void addAllSceneOverlays() {
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 public boolean isSwipeEnabled(ScrollDirection direction) { 189 public boolean isSwipeEnabled(ScrollDirection direction) {
201 if ((direction == ScrollDirection.LEFT || direction == ScrollDirecti on.RIGHT) 190 if ((direction == ScrollDirection.LEFT || direction == ScrollDirecti on.RIGHT)
202 && (getTabModelSelector() == null 191 && (getTabModelSelector() == null
203 || getTabModelSelector().getCurrentModel().getCou nt() <= 1)) { 192 || getTabModelSelector().getCurrentModel().getCou nt() <= 1)) {
204 return false; 193 return false;
205 } 194 }
206 195
207 return super.isSwipeEnabled(direction); 196 return super.isSwipeEnabled(direction);
208 } 197 }
209 } 198 }
210
211 private class TabStripEventHandler implements GestureHandler {
212 @Override
213 public void onDown(float x, float y, boolean fromMouse, int buttons) {
214 mTabStripLayoutHelperManager.onDown(time(), x, y, fromMouse, buttons );
215 }
216
217 @Override
218 public void onUpOrCancel() {
219 mTabStripLayoutHelperManager.onUpOrCancel(time());
220 }
221
222 @Override
223 public void drag(float x, float y, float dx, float dy, float tx, float t y) {
224 mTabStripLayoutHelperManager.drag(time(), x, y, dx, dy, tx, ty);
225 }
226
227 @Override
228 public void click(float x, float y, boolean fromMouse, int buttons) {
229 mTabStripLayoutHelperManager.click(time(), x, y, fromMouse, buttons) ;
230 }
231
232 @Override
233 public void fling(float x, float y, float velocityX, float velocityY) {
234 mTabStripLayoutHelperManager.fling(time(), x, y, velocityX, velocity Y);
235 }
236
237 @Override
238 public void onLongPress(float x, float y) {
239 mTabStripLayoutHelperManager.onLongPress(time(), x, y);
240 }
241
242 @Override
243 public void onPinch(float x0, float y0, float x1, float y1, boolean firs tEvent) {
244 // Not implemented.
245 }
246 }
247
248 private class TabStripEventFilter extends AreaGestureEventFilter {
249 public TabStripEventFilter(Context context, GestureHandler handler, Rect F triggerRect,
250 boolean autoOffset, boolean useDefaultLongPress) {
251 super(context, handler, triggerRect, autoOffset, useDefaultLongPress );
252 }
253
254 @Override
255 public boolean onInterceptTouchEventInternal(MotionEvent e, boolean isKe yboardShowing) {
256 if (getActiveLayout().isTabStripEventFilterEnabled()) {
257 return super.onInterceptTouchEventInternal(e, isKeyboardShowing) ;
258 }
259
260 return false;
261 }
262 }
263 } 199 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698