Moved translate button to action bar

pull/201/head
M66B 4 years ago
parent 1cdd5ea8aa
commit d7eda33689

@ -227,6 +227,7 @@ public class FragmentCompose extends FragmentBase {
private enum State {NONE, LOADING, LOADED} private enum State {NONE, LOADING, LOADED}
private ViewGroup view; private ViewGroup view;
private View vwAnchorMenu;
private Spinner spIdentity; private Spinner spIdentity;
private EditText etExtra; private EditText etExtra;
private TextView tvDomain; private TextView tvDomain;
@ -251,7 +252,7 @@ public class FragmentCompose extends FragmentBase {
private ImageButton ibCloseRefHint; private ImageButton ibCloseRefHint;
private ImageButton ibReferenceEdit; private ImageButton ibReferenceEdit;
private ImageButton ibReferenceImages; private ImageButton ibReferenceImages;
private FloatingActionButton fabTranslate; private View vwAnchor;
private BottomNavigationView style_bar; private BottomNavigationView style_bar;
private BottomNavigationView media_bar; private BottomNavigationView media_bar;
private BottomNavigationView bottom_navigation; private BottomNavigationView bottom_navigation;
@ -344,6 +345,7 @@ public class FragmentCompose extends FragmentBase {
view = (ViewGroup) inflater.inflate(R.layout.fragment_compose, container, false); view = (ViewGroup) inflater.inflate(R.layout.fragment_compose, container, false);
// Get controls // Get controls
vwAnchorMenu = view.findViewById(R.id.vwAnchorMenu);
spIdentity = view.findViewById(R.id.spIdentity); spIdentity = view.findViewById(R.id.spIdentity);
etExtra = view.findViewById(R.id.etExtra); etExtra = view.findViewById(R.id.etExtra);
tvDomain = view.findViewById(R.id.tvDomain); tvDomain = view.findViewById(R.id.tvDomain);
@ -368,7 +370,7 @@ public class FragmentCompose extends FragmentBase {
ibCloseRefHint = view.findViewById(R.id.ibCloseRefHint); ibCloseRefHint = view.findViewById(R.id.ibCloseRefHint);
ibReferenceEdit = view.findViewById(R.id.ibReferenceEdit); ibReferenceEdit = view.findViewById(R.id.ibReferenceEdit);
ibReferenceImages = view.findViewById(R.id.ibReferenceImages); 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); style_bar = view.findViewById(R.id.style_bar);
media_bar = view.findViewById(R.id.media_bar); media_bar = view.findViewById(R.id.media_bar);
bottom_navigation = view.findViewById(R.id.bottom_navigation); 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() { style_bar.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override @Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) { public boolean onNavigationItemSelected(@NonNull MenuItem item) {
@ -910,8 +905,6 @@ public class FragmentCompose extends FragmentBase {
ibReferenceEdit.setVisibility(View.GONE); ibReferenceEdit.setVisibility(View.GONE);
ibReferenceImages.setVisibility(View.GONE); ibReferenceImages.setVisibility(View.GONE);
tvReference.setVisibility(View.GONE); tvReference.setVisibility(View.GONE);
fabTranslate.setVisibility(
DeepL.isAvailable(getContext()) ? View.VISIBLE : View.GONE);
style_bar.setVisibility(View.GONE); style_bar.setVisibility(View.GONE);
media_bar.setVisibility(View.GONE); media_bar.setVisibility(View.GONE);
bottom_navigation.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); super.onCreateOptionsMenu(menu, inflater);
} }
@ -1495,6 +1508,8 @@ public class FragmentCompose extends FragmentBase {
super.onPrepareOptionsMenu(menu); super.onPrepareOptionsMenu(menu);
menu.findItem(R.id.menu_encrypt).setEnabled(state == State.LOADED); 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_zoom).setEnabled(state == State.LOADED);
menu.findItem(R.id.menu_media).setEnabled(state == State.LOADED); menu.findItem(R.id.menu_media).setEnabled(state == State.LOADED);
menu.findItem(R.id.menu_compact).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) { if (itemId == R.id.menu_encrypt) {
onMenuEncrypt(); onMenuEncrypt();
return true; return true;
} else if (itemId == R.id.menu_translate) {
onTranslate(vwAnchorMenu);
return true;
} else if (itemId == R.id.menu_zoom) { } else if (itemId == R.id.menu_zoom) {
onMenuZoom(); onMenuZoom();
return true; return true;
@ -1788,7 +1806,6 @@ public class FragmentCompose extends FragmentBase {
return; return;
} }
View vwAnchorMenu = view.findViewById(R.id.vwAnchorMenu);
PopupMenuLifecycle popupMenu = new PopupMenuLifecycle(getContext(), getViewLifecycleOwner(), vwAnchorMenu); PopupMenuLifecycle popupMenu = new PopupMenuLifecycle(getContext(), getViewLifecycleOwner(), vwAnchorMenu);
Menu main = popupMenu.getMenu(); Menu main = popupMenu.getMenu();
@ -3437,7 +3454,6 @@ public class FragmentCompose extends FragmentBase {
new Intent(getContext(), ActivitySetup.class) new Intent(getContext(), ActivitySetup.class)
.putExtra("tab", "encryption")); .putExtra("tab", "encryption"));
else { else {
View vwAnchor = view.findViewById(R.id.vwAnchor);
PopupMenuLifecycle popupMenu = new PopupMenuLifecycle(getContext(), getViewLifecycleOwner(), 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_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); popupMenu.getMenu().add(Menu.NONE, R.string.title_advanced_manage_certificates, 2, R.string.title_advanced_manage_certificates);

@ -115,20 +115,17 @@ public class PopupMenuLifecycle extends PopupMenu implements LifecycleObserver {
} }
private static void insertIcon(Context context, MenuItem menuItem) { private static void insertIcon(Context context, MenuItem menuItem) {
if (menuItem.getItemId() == R.id.menu_zoom)
return;
Drawable icon = menuItem.getIcon(); Drawable icon = menuItem.getIcon();
if (icon == null) if (icon == null)
icon = new ColorDrawable(Color.TRANSPARENT); icon = new ColorDrawable(Color.TRANSPARENT);
else { else {
icon = icon.getConstantState().newDrawable().mutate();
int color = Helper.resolveColor(context, R.attr.colorAccent); int color = Helper.resolveColor(context, R.attr.colorAccent);
icon.setTint(color); icon.setTint(color);
if (!menuItem.isEnabled()) { if (!menuItem.isEnabled())
icon.mutate();
icon.setAlpha(Math.round(Helper.LOW_LIGHT * 255)); icon.setAlpha(Math.round(Helper.LOW_LIGHT * 255));
} }
}
int iconSize = context.getResources().getDimensionPixelSize(R.dimen.menu_item_icon_size); int iconSize = context.getResources().getDimensionPixelSize(R.dimen.menu_item_icon_size);
icon.setBounds(0, 0, iconSize, iconSize); icon.setBounds(0, 0, iconSize, iconSize);

@ -500,21 +500,6 @@
app:layout_constraintBottom_toTopOf="@+id/style_bar" app:layout_constraintBottom_toTopOf="@+id/style_bar"
app:layout_constraintEnd_toEndOf="parent" /> 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 <com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/style_bar" android:id="@+id/style_bar"
android:layout_width="0dp" android:layout_width="0dp"

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

Loading…
Cancel
Save