Index: chrome/android/java_staging/src/org/chromium/chrome/browser/dom_distiller/ReaderModeEdgeSwipeHandler.java |
diff --git a/chrome/android/java_staging/src/org/chromium/chrome/browser/dom_distiller/ReaderModeEdgeSwipeHandler.java b/chrome/android/java_staging/src/org/chromium/chrome/browser/dom_distiller/ReaderModeEdgeSwipeHandler.java |
new file mode 100644 |
index 0000000000000000000000000000000000000000..aee7546751e2ed4564a30279f0ebf4f42e87e13e |
--- /dev/null |
+++ b/chrome/android/java_staging/src/org/chromium/chrome/browser/dom_distiller/ReaderModeEdgeSwipeHandler.java |
@@ -0,0 +1,50 @@ |
+// 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.dom_distiller; |
+ |
+import org.chromium.chrome.browser.compositor.layouts.EdgeSwipeHandlerLayoutDelegate; |
+import org.chromium.chrome.browser.compositor.layouts.LayoutProvider; |
+import org.chromium.chrome.browser.compositor.layouts.eventfilter.EdgeSwipeEventFilter.ScrollDirection; |
+import org.chromium.chrome.browser.dom_distiller.ReaderModeStaticEventFilter.ReaderModePanelSelector; |
+ |
+/** |
+ * An {@link EdgeSwipeHandlerLayoutDelegate} that delegates all swipe events to the currently |
+ * active Reader Mode Panel. |
+ */ |
+public class ReaderModeEdgeSwipeHandler extends EdgeSwipeHandlerLayoutDelegate { |
+ private final ReaderModePanelSelector mReaderModePanelSelector; |
+ |
+ public ReaderModeEdgeSwipeHandler(ReaderModePanelSelector selector, LayoutProvider provider) { |
+ super(provider); |
+ mReaderModePanelSelector = selector; |
+ } |
+ |
+ @Override |
+ public void swipeStarted(ScrollDirection direction, float x, float y) { |
+ ReaderModePanel panel = mReaderModePanelSelector.getActiveReaderModePanel(); |
+ if (panel == null) super.swipeStarted(direction, x, y); |
+ else panel.swipeStarted(direction, x, y); |
+ } |
+ |
+ @Override |
+ public void swipeUpdated(float x, float y, float dx, float dy, float tx, float ty) { |
+ ReaderModePanel panel = mReaderModePanelSelector.getActiveReaderModePanel(); |
+ if (panel == null) super.swipeUpdated(x, y, dx, dy, tx, ty); |
+ else panel.swipeUpdated(x, y, dx, dy, tx, ty); |
+ } |
+ |
+ @Override |
+ public void swipeFinished() { |
+ ReaderModePanel panel = mReaderModePanelSelector.getActiveReaderModePanel(); |
+ if (panel == null) super.swipeFinished(); |
+ else panel.swipeFinished(); |
+ } |
+ |
+ @Override |
+ public boolean isSwipeEnabled(ScrollDirection direction) { |
+ ReaderModePanel panel = mReaderModePanelSelector.getActiveReaderModePanel(); |
+ return panel != null && panel.isSwipeEnabled(direction); |
+ } |
+} |