diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java
index 987da7b66f..a763bdcf2e 100644
--- a/app/src/main/java/eu/faircode/email/FragmentCompose.java
+++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java
@@ -26,11 +26,13 @@ import android.content.pm.PackageManager;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
+import android.os.Handler;
import android.provider.ContactsContract;
import android.provider.OpenableColumns;
import android.text.Html;
import android.text.TextUtils;
import android.util.Log;
+import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
@@ -94,14 +96,15 @@ public class FragmentCompose extends FragmentEx {
private EditText etBody;
private BottomNavigationView bottom_navigation;
private ProgressBar pbWait;
- //private Group grpFrom;
+ private Group grpReady;
+ private Group grpHeader;
private Group grpAddresses;
private Group grpAttachments;
- private Group grpReady;
private AdapterAttachment adapter;
private long working = -1;
+ private boolean free = false;
private boolean autosave = true;
private static final int ATTACHMENT_BUFFER_SIZE = 8192; // bytes
@@ -127,10 +130,10 @@ public class FragmentCompose extends FragmentEx {
etBody = view.findViewById(R.id.etBody);
bottom_navigation = view.findViewById(R.id.bottom_navigation);
pbWait = view.findViewById(R.id.pbWait);
- //grpFrom = view.findViewById(R.id.grpFrom);
+ grpReady = view.findViewById(R.id.grpReady);
+ grpHeader = view.findViewById(R.id.grpHeader);
grpAddresses = view.findViewById(R.id.grpAddresses);
grpAttachments = view.findViewById(R.id.grpAttachments);
- grpReady = view.findViewById(R.id.grpReady);
// Wire controls
@@ -173,6 +176,48 @@ public class FragmentCompose extends FragmentEx {
}
});
+ etBody.setOnFocusChangeListener(new View.OnFocusChangeListener() {
+ @Override
+ public void onFocusChange(View view, boolean hasFocus) {
+ free = hasFocus;
+ getActivity().invalidateOptionsMenu();
+ grpHeader.setVisibility(hasFocus ? View.GONE : View.VISIBLE);
+ if (hasFocus) {
+ grpAddresses.setVisibility(View.GONE);
+ grpAttachments.setVisibility(View.GONE);
+ }
+ }
+ });
+
+ etBody.setOnKeyListener(new View.OnKeyListener() {
+ @Override
+ public boolean onKey(View view, int keyCode, KeyEvent event) {
+ if (event.getAction() == KeyEvent.ACTION_DOWN) {
+ switch (keyCode) {
+ case KeyEvent.KEYCODE_BACK:
+ if (grpHeader.getVisibility() == View.GONE) {
+ free = false;
+ getActivity().invalidateOptionsMenu();
+ grpHeader.setVisibility(View.VISIBLE);
+
+ if (rvAttachment.getAdapter().getItemCount() > 0)
+ grpAttachments.setVisibility(View.VISIBLE);
+
+ new Handler().post(new Runnable() {
+ @Override
+ public void run() {
+ etSubject.requestFocus();
+ }
+ });
+
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+ });
+
bottom_navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
@@ -304,7 +349,7 @@ public class FragmentCompose extends FragmentEx {
super.onPrepareOptionsMenu(menu);
menu.findItem(R.id.menu_attachment).setVisible(working >= 0);
menu.findItem(R.id.menu_attachment).setEnabled(etBody.isEnabled());
- menu.findItem(R.id.menu_addresses).setVisible(working >= 0);
+ menu.findItem(R.id.menu_addresses).setVisible(!free && working >= 0);
}
@Override
@@ -723,7 +768,8 @@ public class FragmentCompose extends FragmentEx {
attachments = new ArrayList<>();
adapter.set(attachments);
- grpAttachments.setVisibility(attachments.size() > 0 ? View.VISIBLE : View.GONE);
+ if (!free)
+ grpAttachments.setVisibility(attachments.size() > 0 ? View.VISIBLE : View.GONE);
}
});
diff --git a/app/src/main/java/eu/faircode/email/FragmentMessage.java b/app/src/main/java/eu/faircode/email/FragmentMessage.java
index 6c599c4fd0..17075266ee 100644
--- a/app/src/main/java/eu/faircode/email/FragmentMessage.java
+++ b/app/src/main/java/eu/faircode/email/FragmentMessage.java
@@ -43,6 +43,7 @@ import android.widget.TextView;
import android.widget.Toast;
import com.google.android.material.bottomnavigation.BottomNavigationView;
+import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.text.Collator;
import java.text.DateFormat;
@@ -80,12 +81,15 @@ public class FragmentMessage extends FragmentEx {
private TextView tvError;
private BottomNavigationView top_navigation;
private TextView tvBody;
+ private FloatingActionButton fab;
private BottomNavigationView bottom_navigation;
private ProgressBar pbWait;
+ private Group grpReady;
+ private Group grpHeader;
private Group grpAddresses;
private Group grpAttachments;
- private Group grpReady;
+ private boolean free = false;
private AdapterAttachment adapter;
private boolean debug;
@@ -114,11 +118,13 @@ public class FragmentMessage extends FragmentEx {
tvError = view.findViewById(R.id.tvError);
top_navigation = view.findViewById(R.id.top_navigation);
tvBody = view.findViewById(R.id.tvBody);
+ fab = view.findViewById(R.id.fab);
bottom_navigation = view.findViewById(R.id.bottom_navigation);
pbWait = view.findViewById(R.id.pbWait);
+ grpReady = view.findViewById(R.id.grpReady);
+ grpHeader = view.findViewById(R.id.grpHeader);
grpAddresses = view.findViewById(R.id.grpAddresses);
grpAttachments = view.findViewById(R.id.grpAttachments);
- grpReady = view.findViewById(R.id.grpReady);
setHasOptionsMenu(true);
@@ -193,6 +199,24 @@ public class FragmentMessage extends FragmentEx {
}
});
+ fab.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ free = (top_navigation.getVisibility() != View.GONE);
+ getActivity().invalidateOptionsMenu();
+ grpHeader.setVisibility(free ? View.GONE : View.VISIBLE);
+ if (free) {
+ fab.setImageResource(R.drawable.baseline_fullscreen_exit_24);
+ grpAddresses.setVisibility(View.GONE);
+ grpAttachments.setVisibility(View.GONE);
+ } else {
+ fab.setImageResource(R.drawable.baseline_fullscreen_24);
+ if (rvAttachment.getAdapter().getItemCount() > 0)
+ grpAttachments.setVisibility(View.VISIBLE);
+ }
+ }
+ });
+
bottom_navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
@@ -357,7 +381,8 @@ public class FragmentMessage extends FragmentEx {
attachments = new ArrayList<>();
adapter.set(attachments);
- grpAttachments.setVisibility(attachments.size() > 0 ? View.VISIBLE : View.GONE);
+ if (!free)
+ grpAttachments.setVisibility(attachments.size() > 0 ? View.VISIBLE : View.GONE);
}
});
@@ -369,6 +394,12 @@ public class FragmentMessage extends FragmentEx {
super.onCreateOptionsMenu(menu, inflater);
}
+ @Override
+ public void onPrepareOptionsMenu(Menu menu) {
+ super.onPrepareOptionsMenu(menu);
+ menu.findItem(R.id.menu_addresses).setVisible(!free);
+ }
+
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
diff --git a/app/src/main/res/drawable-hdpi/baseline_fullscreen_black_18.png b/app/src/main/res/drawable-hdpi/baseline_fullscreen_black_18.png
new file mode 100755
index 0000000000..4fef43e09f
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_fullscreen_black_18.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_fullscreen_black_24.png b/app/src/main/res/drawable-hdpi/baseline_fullscreen_black_24.png
new file mode 100755
index 0000000000..9d3287ab83
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_fullscreen_black_24.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_fullscreen_black_36.png b/app/src/main/res/drawable-hdpi/baseline_fullscreen_black_36.png
new file mode 100755
index 0000000000..726ee23821
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_fullscreen_black_36.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_fullscreen_black_48.png b/app/src/main/res/drawable-hdpi/baseline_fullscreen_black_48.png
new file mode 100755
index 0000000000..66a373ce5b
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_fullscreen_black_48.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_18.png b/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_18.png
new file mode 100755
index 0000000000..3c3a6aa7c5
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_18.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_24.png b/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_24.png
new file mode 100755
index 0000000000..fca6cdf344
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_24.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_36.png b/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_36.png
new file mode 100755
index 0000000000..00c4d5952a
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_36.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_48.png b/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_48.png
new file mode 100755
index 0000000000..5691b5541c
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_48.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_18.png b/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_18.png
new file mode 100755
index 0000000000..5126fbc87f
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_18.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_24.png b/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_24.png
new file mode 100755
index 0000000000..6c9d58d5d6
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_24.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_36.png b/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_36.png
new file mode 100755
index 0000000000..4701a4ef63
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_36.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_48.png b/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_48.png
new file mode 100755
index 0000000000..159bea7fd8
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_48.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_fullscreen_white_18.png b/app/src/main/res/drawable-hdpi/baseline_fullscreen_white_18.png
new file mode 100755
index 0000000000..2668917f03
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_fullscreen_white_18.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_fullscreen_white_24.png b/app/src/main/res/drawable-hdpi/baseline_fullscreen_white_24.png
new file mode 100755
index 0000000000..c150cb58db
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_fullscreen_white_24.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_fullscreen_white_36.png b/app/src/main/res/drawable-hdpi/baseline_fullscreen_white_36.png
new file mode 100755
index 0000000000..091478f108
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_fullscreen_white_36.png differ
diff --git a/app/src/main/res/drawable-hdpi/baseline_fullscreen_white_48.png b/app/src/main/res/drawable-hdpi/baseline_fullscreen_white_48.png
new file mode 100755
index 0000000000..9b8131124d
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/baseline_fullscreen_white_48.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_fullscreen_black_18.png b/app/src/main/res/drawable-mdpi/baseline_fullscreen_black_18.png
new file mode 100755
index 0000000000..71a74e4359
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_fullscreen_black_18.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_fullscreen_black_24.png b/app/src/main/res/drawable-mdpi/baseline_fullscreen_black_24.png
new file mode 100755
index 0000000000..fabd66f03e
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_fullscreen_black_24.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_fullscreen_black_36.png b/app/src/main/res/drawable-mdpi/baseline_fullscreen_black_36.png
new file mode 100755
index 0000000000..9d3287ab83
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_fullscreen_black_36.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_fullscreen_black_48.png b/app/src/main/res/drawable-mdpi/baseline_fullscreen_black_48.png
new file mode 100755
index 0000000000..4a0c3047fc
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_fullscreen_black_48.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_18.png b/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_18.png
new file mode 100755
index 0000000000..713a82e38e
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_18.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_24.png b/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_24.png
new file mode 100755
index 0000000000..a327b5b51b
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_24.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_36.png b/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_36.png
new file mode 100755
index 0000000000..fca6cdf344
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_36.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_48.png b/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_48.png
new file mode 100755
index 0000000000..299e5054b4
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_48.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_18.png b/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_18.png
new file mode 100755
index 0000000000..9a4ff2a6a2
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_18.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_24.png b/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_24.png
new file mode 100755
index 0000000000..23c3eb55d8
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_24.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_36.png b/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_36.png
new file mode 100755
index 0000000000..6c9d58d5d6
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_36.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_48.png b/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_48.png
new file mode 100755
index 0000000000..364bad0b84
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_48.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_fullscreen_white_18.png b/app/src/main/res/drawable-mdpi/baseline_fullscreen_white_18.png
new file mode 100755
index 0000000000..25b376795b
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_fullscreen_white_18.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_fullscreen_white_24.png b/app/src/main/res/drawable-mdpi/baseline_fullscreen_white_24.png
new file mode 100755
index 0000000000..6039e3cfd8
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_fullscreen_white_24.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_fullscreen_white_36.png b/app/src/main/res/drawable-mdpi/baseline_fullscreen_white_36.png
new file mode 100755
index 0000000000..c150cb58db
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_fullscreen_white_36.png differ
diff --git a/app/src/main/res/drawable-mdpi/baseline_fullscreen_white_48.png b/app/src/main/res/drawable-mdpi/baseline_fullscreen_white_48.png
new file mode 100755
index 0000000000..4423c7ce99
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/baseline_fullscreen_white_48.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_18.png b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_18.png
new file mode 100755
index 0000000000..9d3287ab83
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_18.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_24.png
new file mode 100755
index 0000000000..4a0c3047fc
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_24.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_36.png b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_36.png
new file mode 100755
index 0000000000..66a373ce5b
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_36.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_48.png b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_48.png
new file mode 100755
index 0000000000..9feee989da
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_48.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_18.png b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_18.png
new file mode 100755
index 0000000000..fca6cdf344
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_18.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_24.png b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_24.png
new file mode 100755
index 0000000000..299e5054b4
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_24.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_36.png b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_36.png
new file mode 100755
index 0000000000..5691b5541c
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_36.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_48.png b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_48.png
new file mode 100755
index 0000000000..2221235dfa
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_48.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_18.png
new file mode 100755
index 0000000000..6c9d58d5d6
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_18.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_24.png
new file mode 100755
index 0000000000..364bad0b84
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_24.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_36.png
new file mode 100755
index 0000000000..159bea7fd8
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_36.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_48.png
new file mode 100755
index 0000000000..ef360fe40c
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_48.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_18.png b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_18.png
new file mode 100755
index 0000000000..c150cb58db
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_18.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_24.png b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_24.png
new file mode 100755
index 0000000000..4423c7ce99
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_24.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_36.png b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_36.png
new file mode 100755
index 0000000000..9b8131124d
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_36.png differ
diff --git a/app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_48.png b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_48.png
new file mode 100755
index 0000000000..c1dcfb2902
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_48.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_18.png
new file mode 100755
index 0000000000..726ee23821
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_18.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_24.png b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_24.png
new file mode 100755
index 0000000000..66a373ce5b
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_24.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_36.png b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_36.png
new file mode 100755
index 0000000000..f4894d8939
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_36.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_48.png b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_48.png
new file mode 100755
index 0000000000..82147218c2
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_48.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_18.png b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_18.png
new file mode 100755
index 0000000000..00c4d5952a
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_18.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_24.png b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_24.png
new file mode 100755
index 0000000000..5691b5541c
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_24.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_36.png b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_36.png
new file mode 100755
index 0000000000..85e083d6fc
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_36.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_48.png b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_48.png
new file mode 100755
index 0000000000..8eb5708a80
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_48.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_18.png
new file mode 100755
index 0000000000..4701a4ef63
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_18.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_24.png
new file mode 100755
index 0000000000..159bea7fd8
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_24.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_36.png
new file mode 100755
index 0000000000..41ff3c8287
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_36.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_48.png
new file mode 100755
index 0000000000..b7f4133fd9
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_48.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_18.png b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_18.png
new file mode 100755
index 0000000000..091478f108
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_18.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_24.png b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_24.png
new file mode 100755
index 0000000000..9b8131124d
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_24.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_36.png b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_36.png
new file mode 100755
index 0000000000..ca9135b491
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_36.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_48.png b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_48.png
new file mode 100755
index 0000000000..a0a1b4d4f3
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_48.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_18.png
new file mode 100755
index 0000000000..66a373ce5b
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_18.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_24.png
new file mode 100755
index 0000000000..9feee989da
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_24.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_36.png
new file mode 100755
index 0000000000..82147218c2
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_36.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_48.png
new file mode 100755
index 0000000000..bed0b9bc2b
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_48.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_18.png
new file mode 100755
index 0000000000..5691b5541c
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_18.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_24.png
new file mode 100755
index 0000000000..2221235dfa
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_24.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_36.png
new file mode 100755
index 0000000000..8eb5708a80
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_36.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_48.png
new file mode 100755
index 0000000000..62f2547c23
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_48.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_18.png
new file mode 100755
index 0000000000..159bea7fd8
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_18.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_24.png
new file mode 100755
index 0000000000..ef360fe40c
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_24.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_36.png
new file mode 100755
index 0000000000..b7f4133fd9
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_36.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_48.png
new file mode 100755
index 0000000000..6b25813f33
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_48.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_18.png b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_18.png
new file mode 100755
index 0000000000..9b8131124d
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_18.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_24.png b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_24.png
new file mode 100755
index 0000000000..c1dcfb2902
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_24.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_36.png b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_36.png
new file mode 100755
index 0000000000..a0a1b4d4f3
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_36.png differ
diff --git a/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_48.png b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_48.png
new file mode 100755
index 0000000000..4596c39109
Binary files /dev/null and b/app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_48.png differ
diff --git a/app/src/main/res/drawable/baseline_fullscreen_24.xml b/app/src/main/res/drawable/baseline_fullscreen_24.xml
new file mode 100755
index 0000000000..48e3c31043
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_fullscreen_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/baseline_fullscreen_exit_24.xml b/app/src/main/res/drawable/baseline_fullscreen_exit_24.xml
new file mode 100755
index 0000000000..01b8d4f4c3
--- /dev/null
+++ b/app/src/main/res/drawable/baseline_fullscreen_exit_24.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/layout/fragment_compose.xml b/app/src/main/res/layout/fragment_compose.xml
index a5506371dc..48a980a094 100644
--- a/app/src/main/res/layout/fragment_compose.xml
+++ b/app/src/main/res/layout/fragment_compose.xml
@@ -195,26 +195,26 @@
app:layout_constraintTop_toTopOf="parent" />
+ app:constraint_referenced_ids="etTo,ivToAdd,etSubject,vSeparator,scroll,bottom_navigation" />
+ app:constraint_referenced_ids="spFrom,ivIdentityAdd,etTo,ivToAdd,etSubject,vSeparator" />
+ app:constraint_referenced_ids="etCc,ivCcAdd,etBcc,ivBccAdd" />
+ app:constraint_referenced_ids="vSeparatorAttachments,rvAttachment" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_message.xml b/app/src/main/res/layout/fragment_message.xml
index a09f53890c..8606459db5 100644
--- a/app/src/main/res/layout/fragment_message.xml
+++ b/app/src/main/res/layout/fragment_message.xml
@@ -233,6 +233,18 @@
android:textIsSelectable="true" />
+
+
+ app:constraint_referenced_ids="tvFrom,tvToTitle,tvTo,tvTime,tvSubject,tvCount,scroll,fab" />
+ app:constraint_referenced_ids="tvFrom,tvToTitle,tvTo,tvTime,tvSubject,tvCount,top_navigation" />
+
+
+ app:constraint_referenced_ids="vSeparatorAttachments,rvAttachment" />