summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2024-03-20 10:23:42 +0800
committerPo Lu <luangruo@yahoo.com>2024-03-20 10:23:42 +0800
commite72f17e4622fae45c9814f6ed196e5a9ed06cdd2 (patch)
tree3de87fc6c8c82166871c817cc20e7902b730f799 /java
parent014cd0040275bb2a4d08d392825b4814452275db (diff)
downloademacs-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.java4
-rw-r--r--java/org/gnu/emacs/EmacsWindow.java18
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)