diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index da2d37d9b2..e662e3e54c 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -265,6 +265,7 @@ public class FragmentCompose extends FragmentBase { private TextViewAutoCompleteAction etSearch; private HorizontalScrollView style_bar; private ImageButton ibLink; + private ImageButton ibAnswer; private BottomNavigationView media_bar; private BottomNavigationView bottom_navigation; private ContentLoadingProgressBar pbWait; @@ -397,6 +398,7 @@ public class FragmentCompose extends FragmentBase { etSearch = view.findViewById(R.id.etSearch); style_bar = view.findViewById(R.id.style_bar); ibLink = view.findViewById(R.id.menu_link); + ibAnswer = view.findViewById(R.id.menu_style_insert_answer); media_bar = view.findViewById(R.id.media_bar); bottom_navigation = view.findViewById(R.id.bottom_navigation); @@ -897,6 +899,14 @@ public class FragmentCompose extends FragmentBase { } }); + ibAnswer.setVisibility(View.VISIBLE); + ibAnswer.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + onMenuAnswerInsert(v); + } + }); + media_bar.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { @@ -1920,7 +1930,7 @@ public class FragmentCompose extends FragmentBase { onMenuManageLocalContacts(); return true; } else if (itemId == R.id.menu_answer_insert) { - onMenuAnswerInsert(); + onMenuAnswerInsert(vwAnchorMenu); return true; } else if (itemId == R.id.menu_answer_create) { onMenuAnswerCreate(); @@ -2148,7 +2158,7 @@ public class FragmentCompose extends FragmentBase { fragment.show(getParentFragmentManager(), "compose:groups"); } - private void onMenuAnswerInsert() { + private void onMenuAnswerInsert(View anchor) { new SimpleTask>() { @Override protected List onExecute(Context context, Bundle args) { @@ -2165,7 +2175,7 @@ public class FragmentCompose extends FragmentBase { return; } - PopupMenuLifecycle popupMenu = new PopupMenuLifecycle(context, getViewLifecycleOwner(), vwAnchorMenu); + PopupMenuLifecycle popupMenu = new PopupMenuLifecycle(context, getViewLifecycleOwner(), anchor); EntityAnswer.fillMenu(popupMenu.getMenu(), true, answers, context); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { diff --git a/app/src/main/java/eu/faircode/email/StyleHelper.java b/app/src/main/java/eu/faircode/email/StyleHelper.java index ecb6b2ebed..5488f6376a 100644 --- a/app/src/main/java/eu/faircode/email/StyleHelper.java +++ b/app/src/main/java/eu/faircode/email/StyleHelper.java @@ -108,6 +108,7 @@ public class StyleHelper { R.id.menu_style_superscript, R.id.menu_style_strikethrough, R.id.menu_style_insert_line, + R.id.menu_style_insert_answer, R.id.menu_style_spell_check, R.id.menu_style_password, R.id.menu_style_code, @@ -134,7 +135,9 @@ public class StyleHelper { v.setOnClickListener(styleListener); - if (id == R.id.menu_style_spell_check) + if (id == R.id.menu_style_insert_answer) + v.setVisibility(View.GONE); + else if (id == R.id.menu_style_spell_check) v.setVisibility( BuildConfig.DEBUG && LanguageTool.isEnabled(v.getContext()) ? View.VISIBLE : View.GONE); @@ -398,7 +401,8 @@ public class StyleHelper { itemId != R.id.menu_style_list && groupId != group_style_list && itemId != R.id.menu_style_indentation && groupId != group_style_indentation && itemId != R.id.menu_style_blockquote && - itemId != R.id.menu_style_insert_line) { + itemId != R.id.menu_style_insert_line && + itemId != R.id.menu_style_insert_answer) { Pair word = getWord(etBody); if (word == null) return false; diff --git a/app/src/main/res/layout/include_style_bar.xml b/app/src/main/res/layout/include_style_bar.xml index 22df424e4a..3ac847a3a7 100644 --- a/app/src/main/res/layout/include_style_bar.xml +++ b/app/src/main/res/layout/include_style_bar.xml @@ -269,6 +269,21 @@ app:srcCompat="@drawable/twotone_horizontal_rule_24" app:tint="@color/action_foreground" /> + + @@ -328,6 +343,5 @@ app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/twotone_format_clear_24" app:tint="@color/action_foreground" /> -