diff --git a/app/src/main/java/eu/faircode/email/ActivitySignature.java b/app/src/main/java/eu/faircode/email/ActivitySignature.java index bc424d5d10..a8d3bfe70c 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySignature.java +++ b/app/src/main/java/eu/faircode/email/ActivitySignature.java @@ -237,6 +237,8 @@ public class ActivitySignature extends ActivityBase { if (action == R.id.menu_link) { Uri uri = null; + final int start = etText.getSelectionStart(); + final int end = etText.getSelectionEnd(); ClipboardManager cbm = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); if (cbm != null && cbm.hasPrimaryClip()) { @@ -259,6 +261,7 @@ public class ActivitySignature extends ActivityBase { @Override public void onClick(DialogInterface dialog, int which) { String link = etLink.getText().toString(); + etText.setSelection(start, end); StyleHelper.apply(R.id.menu_link, etText, link); } }) diff --git a/app/src/main/java/eu/faircode/email/FragmentAnswer.java b/app/src/main/java/eu/faircode/email/FragmentAnswer.java index bc4eb5c614..8caace2694 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAnswer.java +++ b/app/src/main/java/eu/faircode/email/FragmentAnswer.java @@ -336,6 +336,9 @@ public class FragmentAnswer extends FragmentBase { private void onLinkSelected(Bundle args) { String link = args.getString("link"); + int start = args.getInt("start"); + int end = args.getInt("end"); + etText.setSelection(start, end); StyleHelper.apply(R.id.menu_link, etText, link); } @@ -389,6 +392,8 @@ public class FragmentAnswer extends FragmentBase { Bundle args = new Bundle(); args.putParcelable("uri", uri); + args.putInt("start", etText.getSelectionStart()); + args.putInt("end", etText.getSelectionEnd()); FragmentDialogLink fragment = new FragmentDialogLink(); fragment.setArguments(args); diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 919206a6bb..8161bbfa69 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -1519,6 +1519,8 @@ public class FragmentCompose extends FragmentBase { Bundle args = new Bundle(); args.putParcelable("uri", uri); + args.putInt("start", etBody.getSelectionStart()); + args.putInt("end", etBody.getSelectionEnd()); FragmentDialogLink fragment = new FragmentDialogLink(); fragment.setArguments(args); @@ -2674,6 +2676,9 @@ public class FragmentCompose extends FragmentBase { private void onLinkSelected(Bundle args) { String link = args.getString("link"); + int start = args.getInt("start"); + int end = args.getInt("end"); + etBody.setSelection(start, end); StyleHelper.apply(R.id.menu_link, etBody, link); }