]> git.eshelyaron.com Git - emacs.git/commitdiff
Properly merge EXTRA_EMAIL content with mailto URIs
authorPo Lu <luangruo@yahoo.com>
Tue, 14 Nov 2023 02:57:18 +0000 (10:57 +0800)
committerPo Lu <luangruo@yahoo.com>
Tue, 14 Nov 2023 02:57:18 +0000 (10:57 +0800)
* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate):
EXTRA_EMAIL is an array rather than a string, so insert
its first element into an empty mailto URI.

java/org/gnu/emacs/EmacsOpenActivity.java

index a5e8be2f2384d5cba379f2b72048f432db5f454e..5cca6cfcdffd4c510d4d3a990bb67718274c5d8d 100644 (file)
@@ -414,6 +414,7 @@ public final class EmacsOpenActivity extends Activity
     String subjectString, textString, attachmentString;
     CharSequence tem;
     String tem1;
+    String[] emails;
     StringBuilder builder;
     List<Parcelable> list;
 
@@ -466,16 +467,16 @@ public final class EmacsOpenActivity extends Activity
            /* If fileName is merely mailto: (absent either an email
               address or content), then the program launching Emacs
               conceivably provided such an URI to exclude non-email
-              programs from being enumerated within the Share dialog;
-              whereupon Emacs should replace it with any address
-              provided as EXTRA_EMAIL.  */
+              programs from the Share dialog.  Intents created thus
+              might hold the recipient email as a string array, which
+              is non-standard behavior.  */
 
            if (fileName.equals ("mailto:") || fileName.equals ("mailto://"))
              {
-               tem = intent.getCharSequenceExtra (Intent.EXTRA_EMAIL);
+               emails = intent.getStringArrayExtra (Intent.EXTRA_EMAIL);
 
-               if (tem != null)
-                 fileName = "mailto:" + tem;
+               if (emails[0] != null && emails.length > 0)
+                 fileName = "mailto:" + emails[0];
              }
 
            /* Subsequently, escape fileName such that it is rendered