From ecdce961ea1082508b5022fe0c12bf3578e7f34a Mon Sep 17 00:00:00 2001 From: Hui Shu Date: Thu, 4 Feb 2016 15:00:19 -0800 Subject: [PATCH] Support for webview drag and drop WebView needs to override onDragEvent to accept drops from other apps. BUG: 27039417 Change-Id: Ie81c5ac325091cf78440785e04afcc01ddcbaab3 --- api/system-current.txt | 1 + core/java/android/webkit/WebView.java | 6 ++++++ core/java/android/webkit/WebViewProvider.java | 3 +++ 3 files changed, 10 insertions(+) diff --git a/api/system-current.txt b/api/system-current.txt index c9b519ad5fee6..984d92588694c 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -48559,6 +48559,7 @@ package android.webkit { method public abstract void onConfigurationChanged(android.content.res.Configuration); method public abstract android.view.inputmethod.InputConnection onCreateInputConnection(android.view.inputmethod.EditorInfo); method public abstract void onDetachedFromWindow(); + method public abstract boolean onDragEvent(android.view.DragEvent); method public abstract void onDraw(android.graphics.Canvas); method public abstract void onDrawVerticalScrollBar(android.graphics.Canvas, android.graphics.drawable.Drawable, int, int, int, int); method public abstract void onFinishTemporaryDetach(); diff --git a/core/java/android/webkit/WebView.java b/core/java/android/webkit/WebView.java index 0f58ba3c002c8..647d4dcbc3475 100644 --- a/core/java/android/webkit/WebView.java +++ b/core/java/android/webkit/WebView.java @@ -39,6 +39,7 @@ import android.print.PrintDocumentAdapter; import android.security.KeyChain; import android.util.AttributeSet; import android.util.Log; +import android.view.DragEvent; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; @@ -2527,6 +2528,11 @@ public class WebView extends AbsoluteLayout return mProvider.getViewDelegate().onCreateInputConnection(outAttrs); } + @Override + public boolean onDragEvent(DragEvent event) { + return mProvider.getViewDelegate().onDragEvent(event); + } + @Override protected void onVisibilityChanged(View changedView, int visibility) { super.onVisibilityChanged(changedView, visibility); diff --git a/core/java/android/webkit/WebViewProvider.java b/core/java/android/webkit/WebViewProvider.java index 3ce034cf24cb3..94d231c45b985 100644 --- a/core/java/android/webkit/WebViewProvider.java +++ b/core/java/android/webkit/WebViewProvider.java @@ -30,6 +30,7 @@ import android.net.Uri; import android.os.Bundle; import android.os.Message; import android.print.PrintDocumentAdapter; +import android.view.DragEvent; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; @@ -334,6 +335,8 @@ public interface WebViewProvider { public InputConnection onCreateInputConnection(EditorInfo outAttrs); + public boolean onDragEvent(DragEvent event); + public boolean onKeyMultiple(int keyCode, int repeatCount, KeyEvent event); public boolean onKeyDown(int keyCode, KeyEvent event);