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