diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 06ee02cfa6..23f435a704 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -227,6 +227,7 @@ public class FragmentCompose extends FragmentBase { private enum State {NONE, LOADING, LOADED} private ViewGroup view; + private View vwAnchorMenu; private Spinner spIdentity; private EditText etExtra; private TextView tvDomain; @@ -251,7 +252,7 @@ public class FragmentCompose extends FragmentBase { private ImageButton ibCloseRefHint; private ImageButton ibReferenceEdit; private ImageButton ibReferenceImages; - private FloatingActionButton fabTranslate; + private View vwAnchor; private BottomNavigationView style_bar; private BottomNavigationView media_bar; private BottomNavigationView bottom_navigation; @@ -344,6 +345,7 @@ public class FragmentCompose extends FragmentBase { view = (ViewGroup) inflater.inflate(R.layout.fragment_compose, container, false); // Get controls + vwAnchorMenu = view.findViewById(R.id.vwAnchorMenu); spIdentity = view.findViewById(R.id.spIdentity); etExtra = view.findViewById(R.id.etExtra); tvDomain = view.findViewById(R.id.tvDomain); @@ -368,7 +370,7 @@ public class FragmentCompose extends FragmentBase { ibCloseRefHint = view.findViewById(R.id.ibCloseRefHint); ibReferenceEdit = view.findViewById(R.id.ibReferenceEdit); ibReferenceImages = view.findViewById(R.id.ibReferenceImages); - fabTranslate = view.findViewById(R.id.fabTranslate); + vwAnchor = view.findViewById(R.id.vwAnchor); style_bar = view.findViewById(R.id.style_bar); media_bar = view.findViewById(R.id.media_bar); bottom_navigation = view.findViewById(R.id.bottom_navigation); @@ -816,13 +818,6 @@ public class FragmentCompose extends FragmentBase { } }); - fabTranslate.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - onTranslate(v); - } - }); - style_bar.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { @@ -910,8 +905,6 @@ public class FragmentCompose extends FragmentBase { ibReferenceEdit.setVisibility(View.GONE); ibReferenceImages.setVisibility(View.GONE); tvReference.setVisibility(View.GONE); - fabTranslate.setVisibility( - DeepL.isAvailable(getContext()) ? View.VISIBLE : View.GONE); style_bar.setVisibility(View.GONE); media_bar.setVisibility(View.GONE); bottom_navigation.setVisibility(View.GONE); @@ -1487,6 +1480,26 @@ public class FragmentCompose extends FragmentBase { } }); + menu.findItem(R.id.menu_translate).setActionView(R.layout.action_button); + ImageButton ibTranslate = (ImageButton)menu.findItem(R.id.menu_translate).getActionView(); + ibTranslate.setImageResource(R.drawable.twotone_translate_24); + ibTranslate.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + onTranslate(vwAnchorMenu); + } + }); + + menu.findItem(R.id.menu_zoom).setActionView(R.layout.action_button); + ImageButton ibZoom = (ImageButton)menu.findItem(R.id.menu_zoom).getActionView(); + ibZoom.setImageResource(R.drawable.twotone_format_size_24); + ibZoom.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + onMenuZoom(); + } + }); + super.onCreateOptionsMenu(menu, inflater); } @@ -1495,6 +1508,8 @@ public class FragmentCompose extends FragmentBase { super.onPrepareOptionsMenu(menu); menu.findItem(R.id.menu_encrypt).setEnabled(state == State.LOADED); + menu.findItem(R.id.menu_translate).setEnabled(state == State.LOADED); + menu.findItem(R.id.menu_translate).setVisible(DeepL.isAvailable(getContext())); menu.findItem(R.id.menu_zoom).setEnabled(state == State.LOADED); menu.findItem(R.id.menu_media).setEnabled(state == State.LOADED); menu.findItem(R.id.menu_compact).setEnabled(state == State.LOADED); @@ -1564,6 +1579,9 @@ public class FragmentCompose extends FragmentBase { if (itemId == R.id.menu_encrypt) { onMenuEncrypt(); return true; + } else if (itemId == R.id.menu_translate) { + onTranslate(vwAnchorMenu); + return true; } else if (itemId == R.id.menu_zoom) { onMenuZoom(); return true; @@ -1788,7 +1806,6 @@ public class FragmentCompose extends FragmentBase { return; } - View vwAnchorMenu = view.findViewById(R.id.vwAnchorMenu); PopupMenuLifecycle popupMenu = new PopupMenuLifecycle(getContext(), getViewLifecycleOwner(), vwAnchorMenu); Menu main = popupMenu.getMenu(); @@ -3437,7 +3454,6 @@ public class FragmentCompose extends FragmentBase { new Intent(getContext(), ActivitySetup.class) .putExtra("tab", "encryption")); else { - View vwAnchor = view.findViewById(R.id.vwAnchor); PopupMenuLifecycle popupMenu = new PopupMenuLifecycle(getContext(), getViewLifecycleOwner(), vwAnchor); popupMenu.getMenu().add(Menu.NONE, R.string.title_send_dialog, 1, R.string.title_send_dialog); popupMenu.getMenu().add(Menu.NONE, R.string.title_advanced_manage_certificates, 2, R.string.title_advanced_manage_certificates); diff --git a/app/src/main/java/eu/faircode/email/PopupMenuLifecycle.java b/app/src/main/java/eu/faircode/email/PopupMenuLifecycle.java index 152cbd70fa..6664fdb623 100644 --- a/app/src/main/java/eu/faircode/email/PopupMenuLifecycle.java +++ b/app/src/main/java/eu/faircode/email/PopupMenuLifecycle.java @@ -115,19 +115,16 @@ public class PopupMenuLifecycle extends PopupMenu implements LifecycleObserver { } private static void insertIcon(Context context, MenuItem menuItem) { - if (menuItem.getItemId() == R.id.menu_zoom) - return; Drawable icon = menuItem.getIcon(); if (icon == null) icon = new ColorDrawable(Color.TRANSPARENT); else { + icon = icon.getConstantState().newDrawable().mutate(); int color = Helper.resolveColor(context, R.attr.colorAccent); icon.setTint(color); - if (!menuItem.isEnabled()) { - icon.mutate(); + if (!menuItem.isEnabled()) icon.setAlpha(Math.round(Helper.LOW_LIGHT * 255)); - } } int iconSize = context.getResources().getDimensionPixelSize(R.dimen.menu_item_icon_size); diff --git a/app/src/main/res/layout/fragment_compose.xml b/app/src/main/res/layout/fragment_compose.xml index ba545f2922..e516ed93d8 100644 --- a/app/src/main/res/layout/fragment_compose.xml +++ b/app/src/main/res/layout/fragment_compose.xml @@ -500,21 +500,6 @@ app:layout_constraintBottom_toTopOf="@+id/style_bar" app:layout_constraintEnd_toEndOf="parent" /> - - + +