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

Side by Side Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/layouts/ToolbarSwipeLayout.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.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
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
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 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698