From f13031b026f9ccb207a13984dc79cd707d068db9 Mon Sep 17 00:00:00 2001 From: Amir Hardon Date: Fri, 17 Apr 2020 17:19:10 -0700 Subject: [PATCH] Dispatch platform view touch events to the presentation (#17792) --- .../flutter/plugin/platform/PlatformViewsController.java | 3 +-- .../flutter/plugin/platform/VirtualDisplayController.java | 7 +++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/shell/platform/android/io/flutter/plugin/platform/PlatformViewsController.java b/shell/platform/android/io/flutter/plugin/platform/PlatformViewsController.java index cc5dfc91af8..bc36210e4c9 100644 --- a/shell/platform/android/io/flutter/plugin/platform/PlatformViewsController.java +++ b/shell/platform/android/io/flutter/plugin/platform/PlatformViewsController.java @@ -216,7 +216,6 @@ public class PlatformViewsController implements PlatformViewsAccessibilityDelega throw new IllegalStateException( "Sending touch to an unknown view with id: " + touch.viewId); } - View view = vdControllers.get(touch.viewId).getView(); MotionEvent event = MotionEvent.obtain( @@ -235,7 +234,7 @@ public class PlatformViewsController implements PlatformViewsAccessibilityDelega touch.source, touch.flags); - view.dispatchTouchEvent(event); + vdControllers.get(touch.viewId).dispatchTouchEvent(event); } @TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1) diff --git a/shell/platform/android/io/flutter/plugin/platform/VirtualDisplayController.java b/shell/platform/android/io/flutter/plugin/platform/VirtualDisplayController.java index 81c59b6135b..7c4b6bec8ac 100644 --- a/shell/platform/android/io/flutter/plugin/platform/VirtualDisplayController.java +++ b/shell/platform/android/io/flutter/plugin/platform/VirtualDisplayController.java @@ -11,6 +11,7 @@ import android.content.Context; import android.hardware.display.DisplayManager; import android.hardware.display.VirtualDisplay; import android.os.Build; +import android.view.MotionEvent; import android.view.Surface; import android.view.View; import android.view.ViewTreeObserver; @@ -201,6 +202,12 @@ class VirtualDisplayController { return platformView.getView(); } + /** Dispatches a motion event to the presentation for this controller. */ + public void dispatchTouchEvent(MotionEvent event) { + if (presentation == null) return; + presentation.dispatchTouchEvent(event); + } + @TargetApi(Build.VERSION_CODES.JELLY_BEAN) static class OneTimeOnDrawListener implements ViewTreeObserver.OnDrawListener { static void schedule(View view, Runnable runnable) {