| // Copyright 2015 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| package org.chromium.chrome.browser.compositor.layouts; |
| |
| import org.chromium.chrome.browser.compositor.layouts.eventfilter.EdgeSwipeHandler; |
| import org.chromium.chrome.browser.compositor.layouts.eventfilter.EmptyEdgeSwipeHandler; |
| import org.chromium.chrome.browser.compositor.layouts.eventfilter.ScrollDirection; |
| |
| /** |
| * A {@link EdgeSwipeHandler} that takes a {@link LayoutProvider} and delegates all swipe events |
| * to {@link LayoutProvider#getActiveLayout()}. |
| */ |
| public class EdgeSwipeHandlerLayoutDelegate extends EmptyEdgeSwipeHandler { |
| private final LayoutProvider mLayoutProvider; |
| |
| /** |
| * Creates an instance of the {@link EdgeSwipeHandlerLayoutDelegate}. |
| * @param provider A {@link LayoutProvider} instance. |
| */ |
| public EdgeSwipeHandlerLayoutDelegate(LayoutProvider provider) { |
| mLayoutProvider = provider; |
| } |
| |
| @Override |
| public void swipeStarted(@ScrollDirection int direction, float x, float y) { |
| if (mLayoutProvider.getActiveLayout() == null) return; |
| mLayoutProvider.getActiveLayout().swipeStarted(LayoutManager.time(), direction, x, y); |
| } |
| |
| @Override |
| public void swipeUpdated(float x, float y, float dx, float dy, float tx, float ty) { |
| if (mLayoutProvider.getActiveLayout() == null) return; |
| mLayoutProvider.getActiveLayout().swipeUpdated(LayoutManager.time(), x, y, dx, dy, tx, ty); |
| } |
| |
| @Override |
| public void swipeFinished() { |
| if (mLayoutProvider.getActiveLayout() == null) return; |
| mLayoutProvider.getActiveLayout().swipeFinished(LayoutManager.time()); |
| } |
| |
| @Override |
| public void swipeFlingOccurred(float x, float y, float tx, float ty, float vx, float vy) { |
| if (mLayoutProvider.getActiveLayout() == null) return; |
| mLayoutProvider.getActiveLayout().swipeFlingOccurred( |
| LayoutManager.time(), x, y, tx, ty, vx, vy); |
| } |
| } |