From 4fe9f7e08239edfcef1a21087439c9fdb83b95eb Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 2 Jun 2022 09:08:18 +0200 Subject: [PATCH] Insert linked email addresses --- .../email/FragmentDialogInsertLink.java | 24 +++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogInsertLink.java b/app/src/main/java/eu/faircode/email/FragmentDialogInsertLink.java index 0e444bc4d6..27536f336c 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogInsertLink.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogInsertLink.java @@ -248,9 +248,13 @@ public class FragmentDialogInsertLink extends FragmentDialogBase { if (s < e) { start = s; end = e; - Uri u = Uri.parse(edit.subSequence(start, end).toString()); - if (u.getScheme() != null) - uri = u; + String link = edit.subSequence(start, end).toString(); + if (Helper.EMAIL_ADDRESS.matcher(link).matches()) + uri = Uri.parse("mailto:" + link); + else + uri = Uri.parse(link); + if (uri.getScheme() == null) + uri = null; } } @@ -260,9 +264,12 @@ public class FragmentDialogInsertLink extends FragmentDialogBase { start = edit.getSpanStart(spans[0]); end = edit.getSpanEnd(spans[0]); - String url = spans[0].getURL(); - if (url != null) { - uri = Uri.parse(url); + String link = spans[0].getURL(); + if (link != null) { + if (Helper.EMAIL_ADDRESS.matcher(link).matches()) + uri = Uri.parse("mailto:" + link); + else + uri = Uri.parse(link); if (uri.getScheme() == null) uri = null; } @@ -274,7 +281,10 @@ public class FragmentDialogInsertLink extends FragmentDialogBase { ClipboardManager cbm = Helper.getSystemService(etBody.getContext(), ClipboardManager.class); if (cbm != null && cbm.hasPrimaryClip()) { String link = cbm.getPrimaryClip().getItemAt(0).coerceToText(etBody.getContext()).toString(); - uri = Uri.parse(link); + if (Helper.EMAIL_ADDRESS.matcher(link).matches()) + uri = Uri.parse("mailto:" + link); + else + uri = Uri.parse(link); if (uri.getScheme() == null) uri = null; }