From 92fde5f531034d3dbe49ea36cf27a875b9a6c1cc Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 2 Jul 2025 13:55:14 +0200 Subject: [PATCH] Fixed shared mime type --- .../java/eu/faircode/email/ActivityCompose.java | 2 +- .../java/eu/faircode/email/FragmentCompose.java | 4 ++-- app/src/main/java/eu/faircode/email/UriType.java | 13 +++++++++++-- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityCompose.java b/app/src/main/java/eu/faircode/email/ActivityCompose.java index 03ffdd0e7a..44fe2f6053 100644 --- a/app/src/main/java/eu/faircode/email/ActivityCompose.java +++ b/app/src/main/java/eu/faircode/email/ActivityCompose.java @@ -258,7 +258,7 @@ public class ActivityCompose extends ActivityBase implements FragmentManager.OnB ClipData.Item item = clip.getItemAt(i); Uri stream = (item == null ? null : item.getUri()); if (stream != null) - uris.add(new UriType(stream, description, this)); + uris.add(new UriType(stream, intent.getType(), description, this)); } if (intent.hasExtra(Intent.EXTRA_STREAM)) { diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 545340062d..8d9c4ccba5 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -679,7 +679,7 @@ public class FragmentCompose extends FragmentBase { DragAndDropPermissionsCompat permissions = ActivityCompat.requestDragAndDropPermissions(activity, event); if (permissions == null) return false; - UriType uriType = new UriType(uri, event.getClipDescription(), activity); + UriType uriType = new UriType(uri, null, event.getClipDescription(), activity); onSharedAttachments(new ArrayList<>(Arrays.asList(uriType))); return true; default: @@ -3979,7 +3979,7 @@ public class FragmentCompose extends FragmentBase { ClipData.Item item = clipData.getItemAt(i); Uri uri = item.getUri(); if (uri != null) - result.add(new UriType(uri, description, getContext())); + result.add(new UriType(uri, data.getType(), description, getContext())); } } diff --git a/app/src/main/java/eu/faircode/email/UriType.java b/app/src/main/java/eu/faircode/email/UriType.java index aff0d43306..bd95377df3 100644 --- a/app/src/main/java/eu/faircode/email/UriType.java +++ b/app/src/main/java/eu/faircode/email/UriType.java @@ -40,8 +40,17 @@ public class UriType implements Parcelable { this.type = in.readString(); } - public UriType(Uri uri, ClipDescription description, Context context) { - this(uri, description == null || description.getMimeTypeCount() <= 0 ? null : description.getMimeType(0), context); + public UriType(Uri uri, String type, ClipDescription description, Context context) { + this.uri = uri; + if (TextUtils.isEmpty(type)) { + if (description != null) { + if (description.getMimeTypeCount() > 0) + this.type = description.getMimeType(0); + for (int i = 0; i < description.getMimeTypeCount(); i++) + Log.i("Type #" + i + " " + description.getMimeType(i) + " " + uri); + } + } else + this.type = type; } public UriType(Uri uri, String type, Context context) {