Moved translate button to action bar

This commit is contained in:
M66B 2021-07-31 18:39:46 +02:00
parent 1cdd5ea8aa
commit d7eda33689
4 changed files with 37 additions and 33 deletions

View File

@ -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);

View File

@ -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);

View File

@ -500,21 +500,6 @@
app:layout_constraintBottom_toTopOf="@+id/style_bar"
app:layout_constraintEnd_toEndOf="parent" />
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fabTranslate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="@dimen/fab_padding"
android:alpha="0.5"
android:contentDescription="@string/title_translate"
app:backgroundTint="?attr/colorFabBackground"
app:fabSize="mini"
app:layout_constraintBottom_toTopOf="@+id/style_bar"
app:layout_constraintEnd_toEndOf="parent"
app:srcCompat="@drawable/twotone_translate_24"
app:tint="?attr/colorFabForeground"
app:tooltipText="@string/title_translate" />
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/style_bar"
android:layout_width="0dp"

View File

@ -7,6 +7,12 @@
android:title="@string/title_encrypt"
app:showAsAction="always" />
<item
android:id="@+id/menu_translate"
android:icon="@drawable/twotone_translate_24"
android:title="@string/title_translate"
app:showAsAction="always" />
<item
android:id="@+id/menu_zoom"
android:icon="@drawable/twotone_format_size_24"