diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index 731996a4..c6897ea1 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -49,7 +49,6 @@ import android.webkit.MimeTypeMap; import android.widget.ArrayAdapter; import android.widget.EditText; import android.widget.FilterQueryProvider; -import android.widget.ImageButton; import android.widget.ImageView; import android.widget.MultiAutoCompleteTextView; import android.widget.ProgressBar; @@ -104,15 +103,12 @@ public class FragmentCompose extends FragmentEx { private EditText etSubject; private RecyclerView rvAttachment; private EditText etBody; - private ImageButton ibBold; - private ImageButton ibItalic; private BottomNavigationView bottom_navigation; private ProgressBar pbWait; private Group grpHeader; private Group grpAddresses; private Group grpAttachments; private Group grpMessage; - private Group grpAction; private AdapterAttachment adapter; @@ -140,15 +136,12 @@ public class FragmentCompose extends FragmentEx { etSubject = view.findViewById(R.id.etSubject); rvAttachment = view.findViewById(R.id.rvAttachment); etBody = view.findViewById(R.id.etBody); - ibBold = view.findViewById(R.id.ibBold); - ibItalic = view.findViewById(R.id.ibItalic); bottom_navigation = view.findViewById(R.id.bottom_navigation); pbWait = view.findViewById(R.id.pbWait); grpHeader = view.findViewById(R.id.grpHeader); grpAddresses = view.findViewById(R.id.grpAddresses); grpAttachments = view.findViewById(R.id.grpAttachments); grpMessage = view.findViewById(R.id.grpMessage); - grpAction = view.findViewById(R.id.grpAction); // Wire controls @@ -201,7 +194,6 @@ public class FragmentCompose extends FragmentEx { addresses = (grpAddresses.getVisibility() != View.GONE); grpAddresses.setVisibility(View.GONE); grpAttachments.setVisibility(View.GONE); - grpAction.setVisibility(View.VISIBLE); } } }); @@ -220,7 +212,6 @@ public class FragmentCompose extends FragmentEx { grpAddresses.setVisibility(View.VISIBLE); if (rvAttachment.getAdapter().getItemCount() > 0) grpAttachments.setVisibility(View.VISIBLE); - grpAction.setVisibility(View.GONE); new Handler().post(new Runnable() { @Override @@ -237,29 +228,6 @@ public class FragmentCompose extends FragmentEx { } }); - View.OnClickListener styleListener = new View.OnClickListener() { - @Override - public void onClick(View v) { - int start = etBody.getSelectionStart(); - int end = etBody.getSelectionEnd(); - if (start > end) { - int tmp = start; - start = end; - end = tmp; - } - if (start != end) { - SpannableString s = new SpannableString(etBody.getText()); - s.setSpan(new StyleSpan(v.getId() == ibBold.getId() ? Typeface.BOLD : Typeface.ITALIC), - start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - etBody.setText(s); - etBody.setSelection(end); - } - } - }; - - ibBold.setOnClickListener(styleListener); - ibItalic.setOnClickListener(styleListener); - bottom_navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { @@ -289,7 +257,6 @@ public class FragmentCompose extends FragmentEx { grpAddresses.setVisibility(View.GONE); grpAttachments.setVisibility(View.GONE); grpMessage.setVisibility(View.GONE); - grpAction.setVisibility(View.GONE); pbWait.setVisibility(View.VISIBLE); getActivity().invalidateOptionsMenu(); @@ -427,6 +394,8 @@ public class FragmentCompose extends FragmentEx { @Override public void onPrepareOptionsMenu(Menu menu) { super.onPrepareOptionsMenu(menu); + menu.findItem(R.id.menu_bold).setVisible(free && working >= 0); + menu.findItem(R.id.menu_italic).setVisible(free && working >= 0); menu.findItem(R.id.menu_attachment).setVisible(!free && working >= 0); menu.findItem(R.id.menu_attachment).setEnabled(etBody.isEnabled()); menu.findItem(R.id.menu_addresses).setVisible(!free && working >= 0); @@ -435,6 +404,10 @@ public class FragmentCompose extends FragmentEx { @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { + case R.id.menu_bold: + case R.id.menu_italic: + onMenuStyle(item.getItemId()); + return true; case R.id.menu_attachment: onMenuAttachment(); return true; @@ -446,6 +419,23 @@ public class FragmentCompose extends FragmentEx { } } + private void onMenuStyle(int id) { + int start = etBody.getSelectionStart(); + int end = etBody.getSelectionEnd(); + if (start > end) { + int tmp = start; + start = end; + end = tmp; + } + if (start != end) { + SpannableString s = new SpannableString(etBody.getText()); + s.setSpan(new StyleSpan(id == R.id.menu_bold ? Typeface.BOLD : Typeface.ITALIC), + start, end, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + etBody.setText(s); + etBody.setSelection(end); + } + } + private void onMenuAttachment() { Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT); intent.addCategory(Intent.CATEGORY_OPENABLE); diff --git a/app/src/main/res/layout/fragment_compose.xml b/app/src/main/res/layout/fragment_compose.xml index 0c1e08ed..e1f01abc 100644 --- a/app/src/main/res/layout/fragment_compose.xml +++ b/app/src/main/res/layout/fragment_compose.xml @@ -154,7 +154,7 @@ android:layout_marginStart="6dp" android:fillViewport="true" android:orientation="vertical" - app:layout_constraintBottom_toTopOf="@+id/ibBold" + app:layout_constraintBottom_toTopOf="@+id/bottom_navigation" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/vSeparator"> @@ -170,25 +170,6 @@ android:textAppearance="@style/TextAppearance.AppCompat.Small" /> - - - - - - \ No newline at end of file diff --git a/app/src/main/res/menu/menu_compose.xml b/app/src/main/res/menu/menu_compose.xml index 93526243..d98a6031 100644 --- a/app/src/main/res/menu/menu_compose.xml +++ b/app/src/main/res/menu/menu_compose.xml @@ -2,6 +2,18 @@ + + + + Save Send + Bold + Italic Show CC/BCC Add attachment