OLD | NEW |
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 Loading... |
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 } |
OLD | NEW |