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.content.res.Resources; | 8 import android.content.res.Resources; |
9 import android.graphics.RectF; | 9 import android.graphics.RectF; |
10 import android.view.animation.DecelerateInterpolator; | 10 import android.view.animation.DecelerateInterpolator; |
11 import android.view.animation.Interpolator; | 11 import android.view.animation.Interpolator; |
12 | 12 |
13 import org.chromium.base.metrics.RecordUserAction; | 13 import org.chromium.base.metrics.RecordUserAction; |
14 import org.chromium.chrome.R; | 14 import org.chromium.chrome.R; |
15 import org.chromium.chrome.browser.compositor.LayerTitleCache; | 15 import org.chromium.chrome.browser.compositor.LayerTitleCache; |
16 import org.chromium.chrome.browser.compositor.layouts.ChromeAnimation.Animatable
; | 16 import org.chromium.chrome.browser.compositor.layouts.ChromeAnimation.Animatable
; |
17 import org.chromium.chrome.browser.compositor.layouts.components.LayoutTab; | 17 import org.chromium.chrome.browser.compositor.layouts.components.LayoutTab; |
18 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; | 18 import org.chromium.chrome.browser.compositor.layouts.content.TabContentManager; |
| 19 import org.chromium.chrome.browser.compositor.layouts.eventfilter.BlackHoleEvent
Filter; |
19 import org.chromium.chrome.browser.compositor.layouts.eventfilter.EventFilter; | 20 import org.chromium.chrome.browser.compositor.layouts.eventfilter.EventFilter; |
20 import org.chromium.chrome.browser.compositor.layouts.eventfilter.ScrollDirectio
n; | 21 import org.chromium.chrome.browser.compositor.layouts.eventfilter.ScrollDirectio
n; |
21 import org.chromium.chrome.browser.compositor.scene_layer.SceneLayer; | 22 import org.chromium.chrome.browser.compositor.scene_layer.SceneLayer; |
22 import org.chromium.chrome.browser.compositor.scene_layer.TabListSceneLayer; | 23 import org.chromium.chrome.browser.compositor.scene_layer.TabListSceneLayer; |
23 import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager; | 24 import org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager; |
24 import org.chromium.chrome.browser.tab.Tab; | 25 import org.chromium.chrome.browser.tab.Tab; |
25 import org.chromium.chrome.browser.tabmodel.TabModel; | 26 import org.chromium.chrome.browser.tabmodel.TabModel; |
26 import org.chromium.chrome.browser.util.MathUtils; | 27 import org.chromium.chrome.browser.util.MathUtils; |
27 import org.chromium.ui.base.LocalizationUtils; | 28 import org.chromium.ui.base.LocalizationUtils; |
28 import org.chromium.ui.resources.ResourceManager; | 29 import org.chromium.ui.resources.ResourceManager; |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
62 | 63 |
63 // Offsets are in pixels [0, width]. | 64 // Offsets are in pixels [0, width]. |
64 private float mOffsetStart; | 65 private float mOffsetStart; |
65 private float mOffset; | 66 private float mOffset; |
66 private float mOffsetTarget; | 67 private float mOffsetTarget; |
67 | 68 |
68 // These will be set from dimens.xml | 69 // These will be set from dimens.xml |
69 private final float mSpaceBetweenTabs; | 70 private final float mSpaceBetweenTabs; |
70 private final float mCommitDistanceFromEdge; | 71 private final float mCommitDistanceFromEdge; |
71 | 72 |
| 73 private final BlackHoleEventFilter mBlackHoleEventFilter; |
72 private final TabListSceneLayer mSceneLayer; | 74 private final TabListSceneLayer mSceneLayer; |
73 | 75 |
74 private final Interpolator mEdgeInterpolator = new DecelerateInterpolator(); | 76 private final Interpolator mEdgeInterpolator = new DecelerateInterpolator(); |
75 | 77 |
76 /** | 78 /** |
77 * @param context The current Android's context. | 79 * @param context The current Android's context. |
78 * @param updateHost The {@link LayoutUpdateHost} view for this lay
out. | 80 * @param updateHost The {@link LayoutUpdateHost} view for this lay
out. |
79 * @param renderHost The {@link LayoutRenderHost} view for this lay
out. | 81 * @param renderHost The {@link LayoutRenderHost} view for this lay
out. |
80 * @param eventFilter The {@link EventFilter} that is needed for thi
s view. | 82 * @param eventFilter The {@link EventFilter} that is needed for thi
s view. |
81 */ | 83 */ |
82 public ToolbarSwipeLayout(Context context, LayoutUpdateHost updateHost, | 84 public ToolbarSwipeLayout( |
83 LayoutRenderHost renderHost, EventFilter eventFilter) { | 85 Context context, LayoutUpdateHost updateHost, LayoutRenderHost rende
rHost) { |
84 super(context, updateHost, renderHost, eventFilter); | 86 super(context, updateHost, renderHost); |
| 87 mBlackHoleEventFilter = new BlackHoleEventFilter(context); |
85 Resources res = context.getResources(); | 88 Resources res = context.getResources(); |
86 final float pxToDp = 1.0f / res.getDisplayMetrics().density; | 89 final float pxToDp = 1.0f / res.getDisplayMetrics().density; |
87 mCommitDistanceFromEdge = res.getDimension(R.dimen.toolbar_swipe_commit_
distance) * pxToDp; | 90 mCommitDistanceFromEdge = res.getDimension(R.dimen.toolbar_swipe_commit_
distance) * pxToDp; |
88 mSpaceBetweenTabs = res.getDimension(R.dimen.toolbar_swipe_space_between
_tabs) * pxToDp; | 91 mSpaceBetweenTabs = res.getDimension(R.dimen.toolbar_swipe_space_between
_tabs) * pxToDp; |
89 mSceneLayer = new TabListSceneLayer(); | 92 mSceneLayer = new TabListSceneLayer(); |
90 } | 93 } |
91 | 94 |
92 /** | 95 /** |
93 * @param moveToolbar Whether or not swiping this layout should also move th
e toolbar as well as | 96 * @param moveToolbar Whether or not swiping this layout should also move th
e toolbar as well as |
94 * the content. | 97 * the content. |
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
348 if (prop == Property.OFFSET) { | 351 if (prop == Property.OFFSET) { |
349 mOffset = value; | 352 mOffset = value; |
350 mOffsetTarget = mOffset; | 353 mOffsetTarget = mOffset; |
351 } | 354 } |
352 } | 355 } |
353 | 356 |
354 @Override | 357 @Override |
355 public void onPropertyAnimationFinished(Property prop) {} | 358 public void onPropertyAnimationFinished(Property prop) {} |
356 | 359 |
357 @Override | 360 @Override |
| 361 protected EventFilter getEventFilter() { |
| 362 return mBlackHoleEventFilter; |
| 363 } |
| 364 |
| 365 @Override |
358 protected SceneLayer getSceneLayer() { | 366 protected SceneLayer getSceneLayer() { |
359 return mSceneLayer; | 367 return mSceneLayer; |
360 } | 368 } |
361 | 369 |
362 @Override | 370 @Override |
363 protected void updateSceneLayer(RectF viewport, RectF contentViewport, | 371 protected void updateSceneLayer(RectF viewport, RectF contentViewport, |
364 LayerTitleCache layerTitleCache, TabContentManager tabContentManager
, | 372 LayerTitleCache layerTitleCache, TabContentManager tabContentManager
, |
365 ResourceManager resourceManager, ChromeFullscreenManager fullscreenM
anager) { | 373 ResourceManager resourceManager, ChromeFullscreenManager fullscreenM
anager) { |
366 super.updateSceneLayer(viewport, contentViewport, layerTitleCache, tabCo
ntentManager, | 374 super.updateSceneLayer(viewport, contentViewport, layerTitleCache, tabCo
ntentManager, |
367 resourceManager, fullscreenManager); | 375 resourceManager, fullscreenManager); |
368 assert mSceneLayer != null; | 376 assert mSceneLayer != null; |
369 // contentViewport is intentionally passed for both parameters below. | 377 // contentViewport is intentionally passed for both parameters below. |
370 mSceneLayer.pushLayers(getContext(), contentViewport, contentViewport, t
his, | 378 mSceneLayer.pushLayers(getContext(), contentViewport, contentViewport, t
his, |
371 layerTitleCache, tabContentManager, resourceManager, fullscreenM
anager); | 379 layerTitleCache, tabContentManager, resourceManager, fullscreenM
anager); |
372 } | 380 } |
373 } | 381 } |
OLD | NEW |