From f748c3717cb8ea187d30ae7e81a3aa9188082431 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 12 Nov 2020 15:08:34 +0100 Subject: [PATCH] Refactoring --- .../java/eu/faircode/email/ActivitySignature.java | 4 ++-- .../main/java/eu/faircode/email/FragmentAnswer.java | 4 ++-- .../main/java/eu/faircode/email/FragmentCompose.java | 12 ++++++------ app/src/main/java/eu/faircode/email/StyleHelper.java | 5 +++-- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivitySignature.java b/app/src/main/java/eu/faircode/email/ActivitySignature.java index 3451a8cd35..1f67a4090a 100644 --- a/app/src/main/java/eu/faircode/email/ActivitySignature.java +++ b/app/src/main/java/eu/faircode/email/ActivitySignature.java @@ -278,7 +278,7 @@ public class ActivitySignature extends ActivityBase { public void onClick(DialogInterface dialog, int which) { String link = etLink.getText().toString(); etText.setSelection(start, end); - StyleHelper.apply(R.id.menu_link, null, etText, link); + StyleHelper.apply(R.id.menu_link, ActivitySignature.this, null, etText, link); } }) .setNegativeButton(android.R.string.cancel, null) @@ -286,7 +286,7 @@ public class ActivitySignature extends ActivityBase { return true; } else - return StyleHelper.apply(action, findViewById(action), etText); + return StyleHelper.apply(action, ActivitySignature.this, findViewById(action), etText); } private void onImageSelected(Uri uri) { diff --git a/app/src/main/java/eu/faircode/email/FragmentAnswer.java b/app/src/main/java/eu/faircode/email/FragmentAnswer.java index 18202dca7e..dcad2fea26 100644 --- a/app/src/main/java/eu/faircode/email/FragmentAnswer.java +++ b/app/src/main/java/eu/faircode/email/FragmentAnswer.java @@ -397,7 +397,7 @@ public class FragmentAnswer extends FragmentBase { int start = args.getInt("start"); int end = args.getInt("end"); etText.setSelection(start, end); - StyleHelper.apply(R.id.menu_link, null, etText, link); + StyleHelper.apply(R.id.menu_link, getViewLifecycleOwner(), null, etText, link); } private void onDelete() { @@ -460,7 +460,7 @@ public class FragmentAnswer extends FragmentBase { return true; } else - return StyleHelper.apply(action, view.findViewById(action), etText); + return StyleHelper.apply(action, getViewLifecycleOwner(), view.findViewById(action), etText); } public static class FragmentInfo extends FragmentDialogBase { diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index ca3d138e1a..122344501f 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -1441,7 +1441,7 @@ public class FragmentCompose extends FragmentBase { onMenuAnswer(); return true; case R.id.menu_clear: - StyleHelper.apply(R.id.menu_clear, null, etBody); + StyleHelper.apply(R.id.menu_clear, getViewLifecycleOwner(), null, etBody); return true; case R.id.menu_legend: onMenuLegend(); @@ -1718,7 +1718,7 @@ public class FragmentCompose extends FragmentBase { private boolean onActionStyle(int action, View anchor) { Log.i("Style action=" + action); - return StyleHelper.apply(action, anchor, etBody); + return StyleHelper.apply(action, getViewLifecycleOwner(), anchor, etBody); } private void onActionRecordAudio() { @@ -3063,7 +3063,7 @@ public class FragmentCompose extends FragmentBase { int start = args.getInt("start"); int end = args.getInt("end"); etBody.setSelection(start, end); - StyleHelper.apply(R.id.menu_link, null, etBody, link); + StyleHelper.apply(R.id.menu_link, getViewLifecycleOwner(), null, etBody, link); } private void onActionDiscardConfirmed() { @@ -5253,17 +5253,17 @@ public class FragmentCompose extends FragmentBase { return true; case KeyEvent.KEYCODE_B: if (etBody.hasSelection()) - return StyleHelper.apply(R.id.menu_bold, null, etBody); + return StyleHelper.apply(R.id.menu_bold, getViewLifecycleOwner(), null, etBody); else return false; case KeyEvent.KEYCODE_I: if (etBody.hasSelection()) - return StyleHelper.apply(R.id.menu_italic, null, etBody); + return StyleHelper.apply(R.id.menu_italic, getViewLifecycleOwner(), null, etBody); else return false; case KeyEvent.KEYCODE_U: if (etBody.hasSelection()) - return StyleHelper.apply(R.id.menu_underline, null, etBody); + return StyleHelper.apply(R.id.menu_underline, getViewLifecycleOwner(), null, etBody); else return false; } diff --git a/app/src/main/java/eu/faircode/email/StyleHelper.java b/app/src/main/java/eu/faircode/email/StyleHelper.java index b970279009..ec0c7e8291 100644 --- a/app/src/main/java/eu/faircode/email/StyleHelper.java +++ b/app/src/main/java/eu/faircode/email/StyleHelper.java @@ -30,6 +30,7 @@ import android.view.inputmethod.InputMethodManager; import android.widget.EditText; import androidx.appcompat.widget.PopupMenu; +import androidx.lifecycle.LifecycleOwner; import androidx.preference.PreferenceManager; import com.flask.colorpicker.ColorPickerView; @@ -41,7 +42,7 @@ import java.util.List; import java.util.Locale; public class StyleHelper { - static boolean apply(int action, View anchor, EditText etBody, Object... args) { + static boolean apply(int action, LifecycleOwner owner, View anchor, EditText etBody, Object... args) { Log.i("Style action=" + action); try { @@ -102,7 +103,7 @@ public class StyleHelper { final int e = end; final SpannableStringBuilder t = new SpannableStringBuilder(ss); - PopupMenu popupMenu = new PopupMenu(anchor.getContext(), anchor); + PopupMenuLifecycle popupMenu = new PopupMenuLifecycle(anchor.getContext(), owner, anchor); popupMenu.inflate(R.menu.popup_style); String[] fontNames = anchor.getResources().getStringArray(R.array.fontNameNames);