diff --git a/app/src/main/java/eu/faircode/email/EditTextCompose.java b/app/src/main/java/eu/faircode/email/EditTextCompose.java index c9b5914ef5..92090617d0 100644 --- a/app/src/main/java/eu/faircode/email/EditTextCompose.java +++ b/app/src/main/java/eu/faircode/email/EditTextCompose.java @@ -22,7 +22,6 @@ package eu.faircode.email; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; -import android.content.Intent; import android.content.SharedPreferences; import android.graphics.Typeface; import android.graphics.drawable.Drawable; @@ -44,7 +43,6 @@ import android.view.MenuItem; import android.view.View; import android.view.inputmethod.EditorInfo; import android.view.inputmethod.InputConnection; -import android.widget.Toast; import androidx.core.view.inputmethod.EditorInfoCompat; import androidx.core.view.inputmethod.InputConnectionCompat; @@ -129,47 +127,6 @@ public class EditTextCompose extends FixedEditText { } }); } - - setCustomSelectionActionModeCallback(new ActionMode.Callback() { - @Override - public boolean onCreateActionMode(ActionMode mode, Menu menu) { - return true; - } - - @Override - public boolean onPrepareActionMode(ActionMode mode, Menu menu) { - for (int i = 0; i < menu.size(); i++) { - MenuItem item = menu.getItem(i); - Intent intent = item.getIntent(); - if (intent != null) { - item.setIntent(null); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem item) { - try { - context.startActivity(intent); - } catch (Throwable ex) { - Log.e(ex); - ToastEx.makeText(context, ex.toString(), Toast.LENGTH_LONG).show(); - } - return true; - } - }); - } - } - - return false; - } - - @Override - public boolean onActionItemClicked(ActionMode mode, MenuItem item) { - return false; - } - - @Override - public void onDestroyActionMode(ActionMode mode) { - } - }); } private boolean can(int what) { diff --git a/app/src/main/java/eu/faircode/email/FixedEditText.java b/app/src/main/java/eu/faircode/email/FixedEditText.java index f3f5372705..42ac2c3150 100644 --- a/app/src/main/java/eu/faircode/email/FixedEditText.java +++ b/app/src/main/java/eu/faircode/email/FixedEditText.java @@ -20,17 +20,12 @@ package eu.faircode.email; */ import android.content.Context; -import android.content.Intent; import android.graphics.Canvas; import android.os.Build; import android.util.AttributeSet; -import android.view.ActionMode; import android.view.KeyEvent; -import android.view.Menu; -import android.view.MenuItem; import android.view.MotionEvent; import android.view.textclassifier.TextClassifier; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -54,46 +49,7 @@ public class FixedEditText extends AppCompatEditText { } private void init(Context context) { - setCustomSelectionActionModeCallback(new ActionMode.Callback() { - @Override - public boolean onCreateActionMode(ActionMode mode, Menu menu) { - return true; - } - - @Override - public boolean onPrepareActionMode(ActionMode mode, Menu menu) { - for (int i = 0; i < menu.size(); i++) { - MenuItem item = menu.getItem(i); - Intent intent = item.getIntent(); - if (intent != null) { - item.setIntent(null); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem item) { - try { - context.startActivity(intent); - } catch (Throwable ex) { - Log.e(ex); - ToastEx.makeText(context, ex.toString(), Toast.LENGTH_LONG).show(); - } - return true; - } - }); - } - } - - return false; - } - - @Override - public boolean onActionItemClicked(ActionMode mode, MenuItem item) { - return false; - } - - @Override - public void onDestroyActionMode(ActionMode mode) { - } - }); + setCustomSelectionActionModeCallback(Helper.getActionModeWrapper(context)); } @Override diff --git a/app/src/main/java/eu/faircode/email/FixedTextView.java b/app/src/main/java/eu/faircode/email/FixedTextView.java index 0eb4c5c605..90a5e3bd41 100644 --- a/app/src/main/java/eu/faircode/email/FixedTextView.java +++ b/app/src/main/java/eu/faircode/email/FixedTextView.java @@ -22,7 +22,6 @@ package eu.faircode.email; import android.content.ClipData; import android.content.ClipboardManager; import android.content.Context; -import android.content.Intent; import android.graphics.Canvas; import android.graphics.Rect; import android.os.Build; @@ -30,12 +29,8 @@ import android.text.Selection; import android.text.Spannable; import android.text.Spanned; import android.util.AttributeSet; -import android.view.ActionMode; import android.view.KeyEvent; -import android.view.Menu; -import android.view.MenuItem; import android.view.MotionEvent; -import android.widget.Toast; import androidx.annotation.NonNull; import androidx.annotation.Nullable; @@ -58,46 +53,7 @@ public class FixedTextView extends AppCompatTextView { } private void init(Context context) { - setCustomSelectionActionModeCallback(new ActionMode.Callback() { - @Override - public boolean onCreateActionMode(ActionMode mode, Menu menu) { - return true; - } - - @Override - public boolean onPrepareActionMode(ActionMode mode, Menu menu) { - for (int i = 0; i < menu.size(); i++) { - MenuItem item = menu.getItem(i); - Intent intent = item.getIntent(); - if (intent != null) { - item.setIntent(null); - item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { - @Override - public boolean onMenuItemClick(MenuItem item) { - try { - context.startActivity(intent); - } catch (Throwable ex) { - Log.e(ex); - ToastEx.makeText(context, ex.toString(), Toast.LENGTH_LONG).show(); - } - return true; - } - }); - } - } - - return false; - } - - @Override - public boolean onActionItemClicked(ActionMode mode, MenuItem item) { - return false; - } - - @Override - public void onDestroyActionMode(ActionMode mode) { - } - }); + setCustomSelectionActionModeCallback(Helper.getActionModeWrapper(context)); } @Override diff --git a/app/src/main/java/eu/faircode/email/Helper.java b/app/src/main/java/eu/faircode/email/Helper.java index facf0f7ce2..de0573d4e9 100644 --- a/app/src/main/java/eu/faircode/email/Helper.java +++ b/app/src/main/java/eu/faircode/email/Helper.java @@ -65,9 +65,11 @@ import android.text.format.DateUtils; import android.text.format.Time; import android.util.DisplayMetrics; import android.util.TypedValue; +import android.view.ActionMode; import android.view.KeyEvent; import android.view.LayoutInflater; import android.view.Menu; +import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; @@ -1660,7 +1662,7 @@ public class Helper { } } - public static String toRoman(int value) { + static String toRoman(int value) { if (value < 0 || value >= 4000) return Integer.toString(value); return ROMAN_1000[value / 1000] + @@ -1669,6 +1671,49 @@ public class Helper { ROMAN_1[value % 10]; } + static ActionMode.Callback getActionModeWrapper(Context context){ + return new ActionMode.Callback() { + @Override + public boolean onCreateActionMode(ActionMode mode, Menu menu) { + return true; + } + + @Override + public boolean onPrepareActionMode(ActionMode mode, Menu menu) { + for (int i = 0; i < menu.size(); i++) { + MenuItem item = menu.getItem(i); + Intent intent = item.getIntent(); + if (intent != null) { + item.setIntent(null); + item.setOnMenuItemClickListener(new MenuItem.OnMenuItemClickListener() { + @Override + public boolean onMenuItemClick(MenuItem item) { + try { + context.startActivity(intent); + } catch (Throwable ex) { + Log.e(ex); + ToastEx.makeText(context, ex.toString(), Toast.LENGTH_LONG).show(); + } + return true; + } + }); + } + } + + return false; + } + + @Override + public boolean onActionItemClicked(ActionMode mode, MenuItem item) { + return false; + } + + @Override + public void onDestroyActionMode(ActionMode mode) { + } + }; + } + // Files static String sanitizeFilename(String name) {