From b8f3d891f66dd219c19e029530a8bda3954e0a28 Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Wed, 11 Mar 2015 12:54:47 -0700 Subject: [PATCH] Wire up gesturetap in SkyShell R=rafaelw@chromium.org Review URL: https://codereview.chromium.org/997073003 --- .../domokit/sky/shell/GestureProvider.java | 16 +++++++++---- .../flutter/shell/ui/input_event_converter.cc | 24 +++++++++++++++---- 2 files changed, 32 insertions(+), 8 deletions(-) diff --git a/engine/src/flutter/shell/org/domokit/sky/shell/GestureProvider.java b/engine/src/flutter/shell/org/domokit/sky/shell/GestureProvider.java index af286e9670a..2018ff733d6 100644 --- a/engine/src/flutter/shell/org/domokit/sky/shell/GestureProvider.java +++ b/engine/src/flutter/shell/org/domokit/sky/shell/GestureProvider.java @@ -69,13 +69,15 @@ public class GestureProvider implements GestureDetector.OnGestureListener { @Override public boolean onDown(MotionEvent event) { + InputEvent inputEvent = createGestureEvent(event); + inputEvent.type = EventType.GESTURE_TAP_DOWN; + mListener.onGestureEvent(inputEvent); return true; } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { - mFlinging = true; // Use the first event as a scroll start (for the target hit-test) @@ -85,12 +87,14 @@ public class GestureProvider implements GestureDetector.OnGestureListener { inputEvent.type = EventType.GESTURE_FLING_START; mListener.onGestureEvent(inputEvent); - return true; } @Override public void onLongPress(MotionEvent event) { + InputEvent inputEvent = createGestureEvent(event); + inputEvent.type = EventType.GESTURE_LONG_PRESS; + mListener.onGestureEvent(inputEvent); } @Override @@ -115,12 +119,16 @@ public class GestureProvider implements GestureDetector.OnGestureListener { @Override public void onShowPress(MotionEvent event) { + InputEvent inputEvent = createGestureEvent(event); + inputEvent.type = EventType.GESTURE_SHOW_PRESS; + mListener.onGestureEvent(inputEvent); } @Override public boolean onSingleTapUp(MotionEvent event) { + InputEvent inputEvent = createGestureEvent(event); + inputEvent.type = EventType.GESTURE_TAP; + mListener.onGestureEvent(inputEvent); return true; } - - } \ No newline at end of file diff --git a/engine/src/flutter/shell/ui/input_event_converter.cc b/engine/src/flutter/shell/ui/input_event_converter.cc index 4ed99ffff28..bd577fd8243 100644 --- a/engine/src/flutter/shell/ui/input_event_converter.cc +++ b/engine/src/flutter/shell/ui/input_event_converter.cc @@ -79,6 +79,18 @@ scoped_ptr BuildWebGestureEvent( case EVENT_TYPE_GESTURE_FLING_CANCEL: web_event->type = blink::WebInputEvent::GestureFlingCancel; break; + case EVENT_TYPE_GESTURE_LONG_PRESS: + web_event->type = blink::WebInputEvent::GestureLongPress; + break; + case EVENT_TYPE_GESTURE_SHOW_PRESS: + web_event->type = blink::WebInputEvent::GestureShowPress; + break; + case EVENT_TYPE_GESTURE_TAP: + web_event->type = blink::WebInputEvent::GestureTap; + break; + case EVENT_TYPE_GESTURE_TAP_DOWN: + web_event->type = blink::WebInputEvent::GestureTapDown; + break; default: break; } @@ -101,11 +113,15 @@ scoped_ptr ConvertEvent(const InputEventPtr& event, case EVENT_TYPE_POINTER_MOVE: case EVENT_TYPE_POINTER_CANCEL: return BuildWebPointerEvent(event, device_pixel_ratio); - case EVENT_TYPE_GESTURE_SCROLL_BEGIN: - case EVENT_TYPE_GESTURE_SCROLL_UPDATE: - case EVENT_TYPE_GESTURE_SCROLL_END: - case EVENT_TYPE_GESTURE_FLING_START: case EVENT_TYPE_GESTURE_FLING_CANCEL: + case EVENT_TYPE_GESTURE_FLING_START: + case EVENT_TYPE_GESTURE_LONG_PRESS: + case EVENT_TYPE_GESTURE_SCROLL_BEGIN: + case EVENT_TYPE_GESTURE_SCROLL_END: + case EVENT_TYPE_GESTURE_SCROLL_UPDATE: + case EVENT_TYPE_GESTURE_SHOW_PRESS: + case EVENT_TYPE_GESTURE_TAP: + case EVENT_TYPE_GESTURE_TAP_DOWN: return BuildWebGestureEvent(event, device_pixel_ratio); case EVENT_TYPE_UNKNOWN: NOTIMPLEMENTED() << "ConvertEvent received unexpected EVENT_TYPE_UNKNOWN";