| 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 |