From a1cb4e86d80c0f69bd8fde8d60a804f267d55b40 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 7 Apr 2021 18:26:31 +0200 Subject: [PATCH] Added copy reference text --- .../eu/faircode/email/FragmentCompose.java | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 8f510241f7..b8fedcb1b0 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -1072,7 +1072,8 @@ public class FragmentCompose extends FragmentBase { popupMenu.getMenu().add(Menu.NONE, R.string.title_edit_plain_text, 1, R.string.title_edit_plain_text); popupMenu.getMenu().add(Menu.NONE, R.string.title_edit_formatted_text, 2, R.string.title_edit_formatted_text); - popupMenu.getMenu().add(Menu.NONE, R.string.title_delete, 3, R.string.title_delete); + popupMenu.getMenu().add(Menu.NONE, R.string.title_clipboard_copy, 3, R.string.title_clipboard_copy); + popupMenu.getMenu().add(Menu.NONE, R.string.title_delete, 4, R.string.title_delete); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { @Override @@ -1084,6 +1085,9 @@ public class FragmentCompose extends FragmentBase { } else if (itemId == R.string.title_edit_formatted_text) { convertRef(false); return true; + } else if (itemId == R.string.title_clipboard_copy) { + copyRef(); + return true; } else if (itemId == R.string.title_delete) { deleteRef(); return true; @@ -1155,6 +1159,26 @@ public class FragmentCompose extends FragmentBase { }.execute(FragmentCompose.this, args, "compose:convert"); } + private void copyRef() { + Context context = getContext(); + if (context == null) + return; + + ClipboardManager clipboard = + (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); + if (clipboard == null) + return; + + String html = HtmlHelper.toHtml((Spanned) tvReference.getText(), context); + + ClipData clip = ClipData.newHtmlText( + etSubject.getText().toString(), + HtmlHelper.getText(getContext(), html), + html); + clipboard.setPrimaryClip(clip); + ToastEx.makeText(context, R.string.title_clipboard_copied, Toast.LENGTH_LONG).show(); + } + private void deleteRef() { Bundle extras = new Bundle(); extras.putString("html", HtmlHelper.toHtml(etBody.getText(), getContext()));