mirror of https://github.com/M66B/FairEmail.git
Added paste as plain text
This commit is contained in:
parent
3468ff7c45
commit
56e8c6111a
|
@ -34,6 +34,7 @@ import android.os.Parcelable;
|
|||
import android.text.Editable;
|
||||
import android.text.SpannableStringBuilder;
|
||||
import android.text.Spanned;
|
||||
import android.text.TextUtils;
|
||||
import android.text.style.QuoteSpan;
|
||||
import android.text.style.StyleSpan;
|
||||
import android.util.AttributeSet;
|
||||
|
@ -110,6 +111,8 @@ public class EditTextCompose extends FixedEditText {
|
|||
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
|
||||
try {
|
||||
int order = 1000;
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O)
|
||||
menu.add(Menu.CATEGORY_SECONDARY, android.R.id.pasteAsPlainText, order++, getTitle(R.string.title_paste_plain));
|
||||
if (undo_manager && can(android.R.id.undo))
|
||||
menu.add(Menu.CATEGORY_SECONDARY, R.string.title_undo, order++, getTitle(R.string.title_undo));
|
||||
if (undo_manager && can(android.R.id.redo))
|
||||
|
@ -142,7 +145,9 @@ public class EditTextCompose extends FixedEditText {
|
|||
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
|
||||
if (item.getGroupId() == Menu.CATEGORY_SECONDARY) {
|
||||
int id = item.getItemId();
|
||||
if (id == R.string.title_undo)
|
||||
if (id == android.R.id.pasteAsPlainText)
|
||||
return insertPlain();
|
||||
else if (id == R.string.title_undo)
|
||||
return EditTextCompose.super.onTextContextMenuItem(android.R.id.undo);
|
||||
else if (id == R.string.title_redo)
|
||||
return EditTextCompose.super.onTextContextMenuItem(android.R.id.redo);
|
||||
|
@ -163,6 +168,31 @@ public class EditTextCompose extends FixedEditText {
|
|||
// Do nothing
|
||||
}
|
||||
|
||||
private boolean insertPlain() {
|
||||
ClipboardManager cbm = Helper.getSystemService(context, ClipboardManager.class);
|
||||
if (!cbm.hasPrimaryClip())
|
||||
return true;
|
||||
|
||||
ClipData clip = cbm.getPrimaryClip();
|
||||
if (clip == null || clip.getItemCount() < 1)
|
||||
return true;
|
||||
|
||||
ClipData.Item item = clip.getItemAt(0);
|
||||
if (item == null)
|
||||
return true;
|
||||
|
||||
CharSequence text = item.getText();
|
||||
if (TextUtils.isEmpty(text))
|
||||
return true;
|
||||
|
||||
int start = getSelectionStart();
|
||||
if (start < 0)
|
||||
start = 0;
|
||||
getText().insert(start, text.toString());
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private boolean insertLine() {
|
||||
try {
|
||||
int start = getSelectionStart();
|
||||
|
|
|
@ -1876,6 +1876,7 @@
|
|||
<string name="title_yes">Yes</string>
|
||||
<string name="title_no">No</string>
|
||||
<string name="title_later">Later</string>
|
||||
<string name="title_paste_plain">Paste as plain text</string>
|
||||
<string name="title_undo">Undo</string>
|
||||
<string name="title_redo">Redo</string>
|
||||
<string name="title_insert_line">Insert line</string>
|
||||
|
|
Loading…
Reference in New Issue