diff options
author | Po Lu <luangruo@yahoo.com> | 2024-03-20 10:23:42 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2024-03-20 10:23:42 +0800 |
commit | e72f17e4622fae45c9814f6ed196e5a9ed06cdd2 (patch) | |
tree | 3de87fc6c8c82166871c817cc20e7902b730f799 /java | |
parent | 014cd0040275bb2a4d08d392825b4814452275db (diff) | |
download | emacs-e72f17e4622fae45c9814f6ed196e5a9ed06cdd2.tar.gz |
Respect file display names during Android drag-and-drop
* java/org/gnu/emacs/EmacsService.java (buildContentName):
Remove redundant projection argument to resolver.query.
* java/org/gnu/emacs/EmacsWindow.java (onDragEvent): If a
content resolver is available, attempt to convert content URIs
into file names in advance.
* lisp/term/android-win.el (android-handle-dnd-event): Adjust
correspondingly.
Diffstat (limited to 'java')
-rw-r--r-- | java/org/gnu/emacs/EmacsService.java | 4 | ||||
-rw-r--r-- | java/org/gnu/emacs/EmacsWindow.java | 18 |
2 files changed, 18 insertions, 4 deletions
diff --git a/java/org/gnu/emacs/EmacsService.java b/java/org/gnu/emacs/EmacsService.java index 19aa3dee456..785163c713c 100644 --- a/java/org/gnu/emacs/EmacsService.java +++ b/java/org/gnu/emacs/EmacsService.java @@ -1072,7 +1072,6 @@ public final class EmacsService extends Service { StringBuilder builder; String displayName; - String[] projection; Cursor cursor; int column; @@ -1081,8 +1080,7 @@ public final class EmacsService extends Service try { - projection = new String[] { OpenableColumns.DISPLAY_NAME, }; - cursor = resolver.query (uri, projection, null, null, null); + cursor = resolver.query (uri, null, null, null, null); if (cursor != null) { diff --git a/java/org/gnu/emacs/EmacsWindow.java b/java/org/gnu/emacs/EmacsWindow.java index 6e8bdaf7401..93a512cc7ef 100644 --- a/java/org/gnu/emacs/EmacsWindow.java +++ b/java/org/gnu/emacs/EmacsWindow.java @@ -31,6 +31,7 @@ import android.app.Activity; import android.content.ClipData; import android.content.ClipDescription; +import android.content.ContentResolver; import android.content.Context; import android.graphics.Rect; @@ -1699,10 +1700,11 @@ public final class EmacsWindow extends EmacsHandleObject ClipData data; ClipDescription description; int i, j, x, y, itemCount; - String type; + String type, uriString; Uri uri; EmacsActivity activity; StringBuilder builder; + ContentResolver resolver; x = (int) event.getX (); y = (int) event.getY (); @@ -1799,6 +1801,20 @@ public final class EmacsWindow extends EmacsHandleObject { if ((activity.requestDragAndDropPermissions (event) == null)) uri = null; + else + { + resolver = activity.getContentResolver (); + + /* Substitute a content file name for the URI, if + possible. */ + uriString = EmacsService.buildContentName (uri, resolver); + + if (uriString != null) + { + builder.append (uriString).append ("\n"); + continue; + } + } } if (uri != null) |