mirror of https://github.com/M66B/FairEmail.git
Small mailto improvements
This commit is contained in:
parent
b3045c0a9e
commit
c3ecd8a598
|
@ -98,27 +98,31 @@ public class ActivityCompose extends ActivityBase implements FragmentManager.OnB
|
||||||
MailTo mailto = MailTo.parse(uri.toString());
|
MailTo mailto = MailTo.parse(uri.toString());
|
||||||
|
|
||||||
List<String> to = sanitize(new String[]{mailto.getTo()});
|
List<String> to = sanitize(new String[]{mailto.getTo()});
|
||||||
if (to.size() == 1)
|
if (to.size() > 0)
|
||||||
args.putString("to", to.get(0));
|
args.putString("to", to.get(0));
|
||||||
|
|
||||||
List<String> cc = sanitize(new String[]{mailto.getCc()});
|
List<String> cc = sanitize(new String[]{mailto.getCc()});
|
||||||
if (cc.size() == 1)
|
if (cc.size() > 0)
|
||||||
args.putString("cc", cc.get(0));
|
args.putString("cc", cc.get(0));
|
||||||
|
|
||||||
String subject = mailto.getSubject();
|
String subject = mailto.getSubject();
|
||||||
if (subject != null)
|
if (!TextUtils.isEmpty(subject))
|
||||||
args.putString("subject", subject);
|
args.putString("subject", subject);
|
||||||
|
|
||||||
Map<String, String> headers = mailto.getHeaders();
|
Map<String, String> headers = mailto.getHeaders();
|
||||||
if (headers != null)
|
if (headers != null)
|
||||||
for (String key : headers.keySet())
|
for (String key : headers.keySet()) {
|
||||||
|
List<String> address = sanitize(new String[]{headers.get(key)});
|
||||||
|
if (address.size() == 0)
|
||||||
|
continue;
|
||||||
if ("bcc".equalsIgnoreCase(key))
|
if ("bcc".equalsIgnoreCase(key))
|
||||||
args.putString("bcc", headers.get(key));
|
args.putString("bcc", address.get(0));
|
||||||
else if ("in-reply-to".equalsIgnoreCase(key))
|
else if ("in-reply-to".equalsIgnoreCase(key))
|
||||||
args.putString("inreplyto", headers.get(key));
|
args.putString("inreplyto", address.get(0));
|
||||||
|
}
|
||||||
|
|
||||||
String body = mailto.getBody();
|
String body = mailto.getBody();
|
||||||
if (body != null) {
|
if (!TextUtils.isEmpty(body)) {
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
for (String line : body.split("\\r?\\n"))
|
for (String line : body.split("\\r?\\n"))
|
||||||
sb.append("<span>").append(Html.escapeHtml(line)).append("<span><br>");
|
sb.append("<span>").append(Html.escapeHtml(line)).append("<span><br>");
|
||||||
|
@ -127,9 +131,9 @@ public class ActivityCompose extends ActivityBase implements FragmentManager.OnB
|
||||||
}
|
}
|
||||||
|
|
||||||
if (intent.hasExtra(Intent.EXTRA_SHORTCUT_ID)) {
|
if (intent.hasExtra(Intent.EXTRA_SHORTCUT_ID)) {
|
||||||
String to = intent.getStringExtra(Intent.EXTRA_SHORTCUT_ID);
|
List<String> to = sanitize(new String[]{intent.getStringExtra(Intent.EXTRA_SHORTCUT_ID)});
|
||||||
if (to != null)
|
if (to.size() > 0)
|
||||||
args.putString("to", to);
|
args.putString("to", to.get(0));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (intent.hasExtra(Intent.EXTRA_EMAIL)) {
|
if (intent.hasExtra(Intent.EXTRA_EMAIL)) {
|
||||||
|
@ -152,28 +156,31 @@ public class ActivityCompose extends ActivityBase implements FragmentManager.OnB
|
||||||
|
|
||||||
if (intent.hasExtra(Intent.EXTRA_SUBJECT)) {
|
if (intent.hasExtra(Intent.EXTRA_SUBJECT)) {
|
||||||
String subject = intent.getStringExtra(Intent.EXTRA_SUBJECT);
|
String subject = intent.getStringExtra(Intent.EXTRA_SUBJECT);
|
||||||
if (subject != null)
|
if (!TextUtils.isEmpty(subject))
|
||||||
args.putString("subject", subject);
|
args.putString("subject", subject);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (intent.hasExtra(Intent.EXTRA_HTML_TEXT)) {
|
String html = null;
|
||||||
String html = intent.getStringExtra(Intent.EXTRA_HTML_TEXT);
|
|
||||||
if (!TextUtils.isEmpty(html))
|
if (intent.hasExtra(Intent.EXTRA_HTML_TEXT))
|
||||||
args.putString("body", html);
|
html = intent.getStringExtra(Intent.EXTRA_HTML_TEXT);
|
||||||
} else if (intent.hasExtra(Intent.EXTRA_TEXT)) {
|
|
||||||
|
if (TextUtils.isEmpty(html) &&
|
||||||
|
intent.hasExtra(Intent.EXTRA_TEXT)) {
|
||||||
CharSequence body = intent.getCharSequenceExtra(Intent.EXTRA_TEXT);
|
CharSequence body = intent.getCharSequenceExtra(Intent.EXTRA_TEXT);
|
||||||
if (body != null)
|
if (body != null)
|
||||||
if (body instanceof Spanned)
|
if (body instanceof Spanned)
|
||||||
args.putString("body", HtmlHelper.toHtml((Spanned) body, this));
|
html = HtmlHelper.toHtml((Spanned) body, this);
|
||||||
else {
|
else {
|
||||||
String text = body.toString();
|
String text = body.toString();
|
||||||
if (!TextUtils.isEmpty(text)) {
|
if (!TextUtils.isEmpty(text))
|
||||||
String html = "<span>" + text.replaceAll("\\r?\\n", "<br>") + "</span>";
|
html = "<span>" + text.replaceAll("\\r?\\n", "<br>") + "</span>";
|
||||||
args.putString("body", html);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!TextUtils.isEmpty(html))
|
||||||
|
args.putString("body", html);
|
||||||
|
|
||||||
if (intent.hasExtra(Intent.EXTRA_STREAM))
|
if (intent.hasExtra(Intent.EXTRA_STREAM))
|
||||||
if (Intent.ACTION_SEND_MULTIPLE.equals(action)) {
|
if (Intent.ACTION_SEND_MULTIPLE.equals(action)) {
|
||||||
ArrayList<Uri> streams = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
|
ArrayList<Uri> streams = intent.getParcelableArrayListExtra(Intent.EXTRA_STREAM);
|
||||||
|
|
Loading…
Reference in New Issue