// 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.EdgeSwipeEventFilter.ScrollDirection;
import org.chromium.chrome.browser.compositor.layouts.eventfilter.EdgeSwipeHandler;
import org.chromium.chrome.browser.compositor.layouts.eventfilter.EmptyEdgeSwipeHandler;
/**
* 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 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);
}
}