mirror of
https://github.com/M66B/FairEmail.git
synced 2026-03-26 02:45:31 +01:00
Added paste as plain text
This commit is contained in:
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user