Browse Source

Distraction free reading and composing

main
M66B 6 years ago
parent
commit
887d80925a
86 changed files with 138 additions and 23 deletions
  1. +52
    -6
      app/src/main/java/eu/faircode/email/FragmentCompose.java
  2. +34
    -3
      app/src/main/java/eu/faircode/email/FragmentMessage.java
  3. BIN
      app/src/main/res/drawable-hdpi/baseline_fullscreen_black_18.png
  4. BIN
      app/src/main/res/drawable-hdpi/baseline_fullscreen_black_24.png
  5. BIN
      app/src/main/res/drawable-hdpi/baseline_fullscreen_black_36.png
  6. BIN
      app/src/main/res/drawable-hdpi/baseline_fullscreen_black_48.png
  7. BIN
      app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_18.png
  8. BIN
      app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_24.png
  9. BIN
      app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_36.png
  10. BIN
      app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_48.png
  11. BIN
      app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_18.png
  12. BIN
      app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_24.png
  13. BIN
      app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_36.png
  14. BIN
      app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_48.png
  15. BIN
      app/src/main/res/drawable-hdpi/baseline_fullscreen_white_18.png
  16. BIN
      app/src/main/res/drawable-hdpi/baseline_fullscreen_white_24.png
  17. BIN
      app/src/main/res/drawable-hdpi/baseline_fullscreen_white_36.png
  18. BIN
      app/src/main/res/drawable-hdpi/baseline_fullscreen_white_48.png
  19. BIN
      app/src/main/res/drawable-mdpi/baseline_fullscreen_black_18.png
  20. BIN
      app/src/main/res/drawable-mdpi/baseline_fullscreen_black_24.png
  21. BIN
      app/src/main/res/drawable-mdpi/baseline_fullscreen_black_36.png
  22. BIN
      app/src/main/res/drawable-mdpi/baseline_fullscreen_black_48.png
  23. BIN
      app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_18.png
  24. BIN
      app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_24.png
  25. BIN
      app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_36.png
  26. BIN
      app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_48.png
  27. BIN
      app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_18.png
  28. BIN
      app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_24.png
  29. BIN
      app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_36.png
  30. BIN
      app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_48.png
  31. BIN
      app/src/main/res/drawable-mdpi/baseline_fullscreen_white_18.png
  32. BIN
      app/src/main/res/drawable-mdpi/baseline_fullscreen_white_24.png
  33. BIN
      app/src/main/res/drawable-mdpi/baseline_fullscreen_white_36.png
  34. BIN
      app/src/main/res/drawable-mdpi/baseline_fullscreen_white_48.png
  35. BIN
      app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_18.png
  36. BIN
      app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_24.png
  37. BIN
      app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_36.png
  38. BIN
      app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_48.png
  39. BIN
      app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_18.png
  40. BIN
      app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_24.png
  41. BIN
      app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_36.png
  42. BIN
      app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_48.png
  43. BIN
      app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_18.png
  44. BIN
      app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_24.png
  45. BIN
      app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_36.png
  46. BIN
      app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_48.png
  47. BIN
      app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_18.png
  48. BIN
      app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_24.png
  49. BIN
      app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_36.png
  50. BIN
      app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_48.png
  51. BIN
      app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_18.png
  52. BIN
      app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_24.png
  53. BIN
      app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_36.png
  54. BIN
      app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_48.png
  55. BIN
      app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_18.png
  56. BIN
      app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_24.png
  57. BIN
      app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_36.png
  58. BIN
      app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_48.png
  59. BIN
      app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_18.png
  60. BIN
      app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_24.png
  61. BIN
      app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_36.png
  62. BIN
      app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_48.png
  63. BIN
      app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_18.png
  64. BIN
      app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_24.png
  65. BIN
      app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_36.png
  66. BIN
      app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_48.png
  67. BIN
      app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_18.png
  68. BIN
      app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_24.png
  69. BIN
      app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_36.png
  70. BIN
      app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_48.png
  71. BIN
      app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_18.png
  72. BIN
      app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_24.png
  73. BIN
      app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_36.png
  74. BIN
      app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_48.png
  75. BIN
      app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_18.png
  76. BIN
      app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_24.png
  77. BIN
      app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_36.png
  78. BIN
      app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_48.png
  79. BIN
      app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_18.png
  80. BIN
      app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_24.png
  81. BIN
      app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_36.png
  82. BIN
      app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_48.png
  83. +10
    -0
      app/src/main/res/drawable/baseline_fullscreen_24.xml
  84. +10
    -0
      app/src/main/res/drawable/baseline_fullscreen_exit_24.xml
  85. +8
    -8
      app/src/main/res/layout/fragment_compose.xml
  86. +24
    -6
      app/src/main/res/layout/fragment_message.xml

+ 52
- 6
app/src/main/java/eu/faircode/email/FragmentCompose.java View File

@ -26,11 +26,13 @@ import android.content.pm.PackageManager;
import android.database.Cursor; import android.database.Cursor;
import android.net.Uri; import android.net.Uri;
import android.os.Bundle; import android.os.Bundle;
import android.os.Handler;
import android.provider.ContactsContract; import android.provider.ContactsContract;
import android.provider.OpenableColumns; import android.provider.OpenableColumns;
import android.text.Html; import android.text.Html;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.Log; import android.util.Log;
import android.view.KeyEvent;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
@ -94,14 +96,15 @@ public class FragmentCompose extends FragmentEx {
private EditText etBody; private EditText etBody;
private BottomNavigationView bottom_navigation; private BottomNavigationView bottom_navigation;
private ProgressBar pbWait; private ProgressBar pbWait;
//private Group grpFrom;
private Group grpReady;
private Group grpHeader;
private Group grpAddresses; private Group grpAddresses;
private Group grpAttachments; private Group grpAttachments;
private Group grpReady;
private AdapterAttachment adapter; private AdapterAttachment adapter;
private long working = -1; private long working = -1;
private boolean free = false;
private boolean autosave = true; private boolean autosave = true;
private static final int ATTACHMENT_BUFFER_SIZE = 8192; // bytes private static final int ATTACHMENT_BUFFER_SIZE = 8192; // bytes
@ -127,10 +130,10 @@ public class FragmentCompose extends FragmentEx {
etBody = view.findViewById(R.id.etBody); etBody = view.findViewById(R.id.etBody);
bottom_navigation = view.findViewById(R.id.bottom_navigation); bottom_navigation = view.findViewById(R.id.bottom_navigation);
pbWait = view.findViewById(R.id.pbWait); 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); grpAddresses = view.findViewById(R.id.grpAddresses);
grpAttachments = view.findViewById(R.id.grpAttachments); grpAttachments = view.findViewById(R.id.grpAttachments);
grpReady = view.findViewById(R.id.grpReady);
// Wire controls // 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() { bottom_navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override @Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) { public boolean onNavigationItemSelected(@NonNull MenuItem item) {
@ -304,7 +349,7 @@ public class FragmentCompose extends FragmentEx {
super.onPrepareOptionsMenu(menu); super.onPrepareOptionsMenu(menu);
menu.findItem(R.id.menu_attachment).setVisible(working >= 0); menu.findItem(R.id.menu_attachment).setVisible(working >= 0);
menu.findItem(R.id.menu_attachment).setEnabled(etBody.isEnabled()); 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 @Override
@ -723,7 +768,8 @@ public class FragmentCompose extends FragmentEx {
attachments = new ArrayList<>(); attachments = new ArrayList<>();
adapter.set(attachments); adapter.set(attachments);
grpAttachments.setVisibility(attachments.size() > 0 ? View.VISIBLE : View.GONE);
if (!free)
grpAttachments.setVisibility(attachments.size() > 0 ? View.VISIBLE : View.GONE);
} }
}); });


+ 34
- 3
app/src/main/java/eu/faircode/email/FragmentMessage.java View File

@ -43,6 +43,7 @@ import android.widget.TextView;
import android.widget.Toast; import android.widget.Toast;
import com.google.android.material.bottomnavigation.BottomNavigationView; import com.google.android.material.bottomnavigation.BottomNavigationView;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import java.text.Collator; import java.text.Collator;
import java.text.DateFormat; import java.text.DateFormat;
@ -80,12 +81,15 @@ public class FragmentMessage extends FragmentEx {
private TextView tvError; private TextView tvError;
private BottomNavigationView top_navigation; private BottomNavigationView top_navigation;
private TextView tvBody; private TextView tvBody;
private FloatingActionButton fab;
private BottomNavigationView bottom_navigation; private BottomNavigationView bottom_navigation;
private ProgressBar pbWait; private ProgressBar pbWait;
private Group grpReady;
private Group grpHeader;
private Group grpAddresses; private Group grpAddresses;
private Group grpAttachments; private Group grpAttachments;
private Group grpReady;
private boolean free = false;
private AdapterAttachment adapter; private AdapterAttachment adapter;
private boolean debug; private boolean debug;
@ -114,11 +118,13 @@ public class FragmentMessage extends FragmentEx {
tvError = view.findViewById(R.id.tvError); tvError = view.findViewById(R.id.tvError);
top_navigation = view.findViewById(R.id.top_navigation); top_navigation = view.findViewById(R.id.top_navigation);
tvBody = view.findViewById(R.id.tvBody); tvBody = view.findViewById(R.id.tvBody);
fab = view.findViewById(R.id.fab);
bottom_navigation = view.findViewById(R.id.bottom_navigation); bottom_navigation = view.findViewById(R.id.bottom_navigation);
pbWait = view.findViewById(R.id.pbWait); pbWait = view.findViewById(R.id.pbWait);
grpReady = view.findViewById(R.id.grpReady);
grpHeader = view.findViewById(R.id.grpHeader);
grpAddresses = view.findViewById(R.id.grpAddresses); grpAddresses = view.findViewById(R.id.grpAddresses);
grpAttachments = view.findViewById(R.id.grpAttachments); grpAttachments = view.findViewById(R.id.grpAttachments);
grpReady = view.findViewById(R.id.grpReady);
setHasOptionsMenu(true); 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() { bottom_navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override @Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) { public boolean onNavigationItemSelected(@NonNull MenuItem item) {
@ -357,7 +381,8 @@ public class FragmentMessage extends FragmentEx {
attachments = new ArrayList<>(); attachments = new ArrayList<>();
adapter.set(attachments); 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); super.onCreateOptionsMenu(menu, inflater);
} }
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
menu.findItem(R.id.menu_addresses).setVisible(!free);
}
@Override @Override
public boolean onOptionsItemSelected(MenuItem item) { public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) { switch (item.getItemId()) {


BIN
app/src/main/res/drawable-hdpi/baseline_fullscreen_black_18.png View File

Before After
Width: 27  |  Height: 27  |  Size: 165 B

BIN
app/src/main/res/drawable-hdpi/baseline_fullscreen_black_24.png View File

Before After
Width: 36  |  Height: 36  |  Size: 111 B

BIN
app/src/main/res/drawable-hdpi/baseline_fullscreen_black_36.png View File

Before After
Width: 54  |  Height: 54  |  Size: 140 B

BIN
app/src/main/res/drawable-hdpi/baseline_fullscreen_black_48.png View File

Before After
Width: 72  |  Height: 72  |  Size: 124 B

BIN
app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_18.png View File

Before After
Width: 27  |  Height: 27  |  Size: 144 B

BIN
app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_24.png View File

Before After
Width: 36  |  Height: 36  |  Size: 113 B

BIN
app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_36.png View File

Before After
Width: 54  |  Height: 54  |  Size: 145 B

BIN
app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_black_48.png View File

Before After
Width: 72  |  Height: 72  |  Size: 122 B

BIN
app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_18.png View File

Before After
Width: 27  |  Height: 27  |  Size: 147 B

BIN
app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_24.png View File

Before After
Width: 36  |  Height: 36  |  Size: 100 B

BIN
app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_36.png View File

Before After
Width: 54  |  Height: 54  |  Size: 146 B

BIN
app/src/main/res/drawable-hdpi/baseline_fullscreen_exit_white_48.png View File

Before After
Width: 72  |  Height: 72  |  Size: 105 B

BIN
app/src/main/res/drawable-hdpi/baseline_fullscreen_white_18.png View File

Before After
Width: 27  |  Height: 27  |  Size: 167 B

BIN
app/src/main/res/drawable-hdpi/baseline_fullscreen_white_24.png View File

Before After
Width: 36  |  Height: 36  |  Size: 101 B

BIN
app/src/main/res/drawable-hdpi/baseline_fullscreen_white_36.png View File

Before After
Width: 54  |  Height: 54  |  Size: 142 B

BIN
app/src/main/res/drawable-hdpi/baseline_fullscreen_white_48.png View File

Before After
Width: 72  |  Height: 72  |  Size: 107 B

BIN
app/src/main/res/drawable-mdpi/baseline_fullscreen_black_18.png View File

Before After
Width: 18  |  Height: 18  |  Size: 109 B

BIN
app/src/main/res/drawable-mdpi/baseline_fullscreen_black_24.png View File

Before After
Width: 24  |  Height: 24  |  Size: 96 B

BIN
app/src/main/res/drawable-mdpi/baseline_fullscreen_black_36.png View File

Before After
Width: 36  |  Height: 36  |  Size: 111 B

BIN
app/src/main/res/drawable-mdpi/baseline_fullscreen_black_48.png View File

Before After
Width: 48  |  Height: 48  |  Size: 117 B

BIN
app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_18.png View File

Before After
Width: 18  |  Height: 18  |  Size: 109 B

BIN
app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_24.png View File

Before After
Width: 24  |  Height: 24  |  Size: 99 B

BIN
app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_36.png View File

Before After
Width: 36  |  Height: 36  |  Size: 113 B

BIN
app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_black_48.png View File

Before After
Width: 48  |  Height: 48  |  Size: 118 B

BIN
app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_18.png View File

Before After
Width: 18  |  Height: 18  |  Size: 113 B

BIN
app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_24.png View File

Before After
Width: 24  |  Height: 24  |  Size: 96 B

BIN
app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_36.png View File

Before After
Width: 36  |  Height: 36  |  Size: 100 B

BIN
app/src/main/res/drawable-mdpi/baseline_fullscreen_exit_white_48.png View File

Before After
Width: 48  |  Height: 48  |  Size: 101 B

BIN
app/src/main/res/drawable-mdpi/baseline_fullscreen_white_18.png View File

Before After
Width: 18  |  Height: 18  |  Size: 110 B

BIN
app/src/main/res/drawable-mdpi/baseline_fullscreen_white_24.png View File

Before After
Width: 24  |  Height: 24  |  Size: 98 B

BIN
app/src/main/res/drawable-mdpi/baseline_fullscreen_white_36.png View File

Before After
Width: 36  |  Height: 36  |  Size: 101 B

BIN
app/src/main/res/drawable-mdpi/baseline_fullscreen_white_48.png View File

Before After
Width: 48  |  Height: 48  |  Size: 101 B

BIN
app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_18.png View File

Before After
Width: 36  |  Height: 36  |  Size: 111 B

BIN
app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_24.png View File

Before After
Width: 48  |  Height: 48  |  Size: 117 B

BIN
app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_36.png View File

Before After
Width: 72  |  Height: 72  |  Size: 124 B

BIN
app/src/main/res/drawable-xhdpi/baseline_fullscreen_black_48.png View File

Before After
Width: 96  |  Height: 96  |  Size: 126 B

BIN
app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_18.png View File

Before After
Width: 36  |  Height: 36  |  Size: 113 B

BIN
app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_24.png View File

Before After
Width: 48  |  Height: 48  |  Size: 118 B

BIN
app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_36.png View File

Before After
Width: 72  |  Height: 72  |  Size: 122 B

BIN
app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_black_48.png View File

Before After
Width: 96  |  Height: 96  |  Size: 123 B

BIN
app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_18.png View File

Before After
Width: 36  |  Height: 36  |  Size: 100 B

BIN
app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_24.png View File

Before After
Width: 48  |  Height: 48  |  Size: 101 B

BIN
app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_36.png View File

Before After
Width: 72  |  Height: 72  |  Size: 105 B

BIN
app/src/main/res/drawable-xhdpi/baseline_fullscreen_exit_white_48.png View File

Before After
Width: 96  |  Height: 96  |  Size: 106 B

BIN
app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_18.png View File

Before After
Width: 36  |  Height: 36  |  Size: 101 B

BIN
app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_24.png View File

Before After
Width: 48  |  Height: 48  |  Size: 101 B

BIN
app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_36.png View File

Before After
Width: 72  |  Height: 72  |  Size: 107 B

BIN
app/src/main/res/drawable-xhdpi/baseline_fullscreen_white_48.png View File

Before After
Width: 96  |  Height: 96  |  Size: 109 B

BIN
app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_18.png View File

Before After
Width: 54  |  Height: 54  |  Size: 140 B

BIN
app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_24.png View File

Before After
Width: 72  |  Height: 72  |  Size: 124 B

BIN
app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_36.png View File

Before After
Width: 108  |  Height: 108  |  Size: 131 B

BIN
app/src/main/res/drawable-xxhdpi/baseline_fullscreen_black_48.png View File

Before After
Width: 144  |  Height: 144  |  Size: 140 B

BIN
app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_18.png View File

Before After
Width: 54  |  Height: 54  |  Size: 145 B

BIN
app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_24.png View File

Before After
Width: 72  |  Height: 72  |  Size: 122 B

BIN
app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_36.png View File

Before After
Width: 108  |  Height: 108  |  Size: 131 B

BIN
app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_black_48.png View File

Before After
Width: 144  |  Height: 144  |  Size: 140 B

BIN
app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_18.png View File

Before After
Width: 54  |  Height: 54  |  Size: 146 B

BIN
app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_24.png View File

Before After
Width: 72  |  Height: 72  |  Size: 105 B

BIN
app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_36.png View File

Before After
Width: 108  |  Height: 108  |  Size: 114 B

BIN
app/src/main/res/drawable-xxhdpi/baseline_fullscreen_exit_white_48.png View File

Before After
Width: 144  |  Height: 144  |  Size: 123 B

BIN
app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_18.png View File

Before After
Width: 54  |  Height: 54  |  Size: 142 B

BIN
app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_24.png View File

Before After
Width: 72  |  Height: 72  |  Size: 107 B

BIN
app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_36.png View File

Before After
Width: 108  |  Height: 108  |  Size: 114 B

BIN
app/src/main/res/drawable-xxhdpi/baseline_fullscreen_white_48.png View File

Before After
Width: 144  |  Height: 144  |  Size: 123 B

BIN
app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_18.png View File

Before After
Width: 72  |  Height: 72  |  Size: 124 B

BIN
app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_24.png View File

Before After
Width: 96  |  Height: 96  |  Size: 126 B

BIN
app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_36.png View File

Before After
Width: 144  |  Height: 144  |  Size: 140 B

BIN
app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_black_48.png View File

Before After
Width: 192  |  Height: 192  |  Size: 141 B

BIN
app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_18.png View File

Before After
Width: 72  |  Height: 72  |  Size: 122 B

BIN
app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_24.png View File

Before After
Width: 96  |  Height: 96  |  Size: 123 B

BIN
app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_36.png View File

Before After
Width: 144  |  Height: 144  |  Size: 140 B

BIN
app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_black_48.png View File

Before After
Width: 192  |  Height: 192  |  Size: 142 B

BIN
app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_18.png View File

Before After
Width: 72  |  Height: 72  |  Size: 105 B

BIN
app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_24.png View File

Before After
Width: 96  |  Height: 96  |  Size: 106 B

BIN
app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_36.png View File

Before After
Width: 144  |  Height: 144  |  Size: 123 B

BIN
app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_exit_white_48.png View File

Before After
Width: 192  |  Height: 192  |  Size: 125 B

BIN
app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_18.png View File

Before After
Width: 72  |  Height: 72  |  Size: 107 B

BIN
app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_24.png View File

Before After
Width: 96  |  Height: 96  |  Size: 109 B

BIN
app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_36.png View File

Before After
Width: 144  |  Height: 144  |  Size: 123 B

BIN
app/src/main/res/drawable-xxxhdpi/baseline_fullscreen_white_48.png View File

Before After
Width: 192  |  Height: 192  |  Size: 124 B

+ 10
- 0
app/src/main/res/drawable/baseline_fullscreen_24.xml View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M7,14L5,14v5h5v-2L7,17v-3zM5,10h2L7,7h3L10,5L5,5v5zM17,17h-3v2h5v-5h-2v3zM14,5v2h3v3h2L19,5h-5z"/>
</vector>

+ 10
- 0
app/src/main/res/drawable/baseline_fullscreen_exit_24.xml View File

@ -0,0 +1,10 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0"
android:tint="?attr/colorControlNormal">
<path
android:fillColor="@android:color/white"
android:pathData="M5,16h3v3h2v-5L5,14v2zM8,8L5,8v2h5L10,5L8,5v3zM14,19h2v-3h3v-2h-5v5zM16,8L16,5h-2v5h5L19,8h-3z"/>
</vector>

+ 8
- 8
app/src/main/res/layout/fragment_compose.xml View File

@ -195,26 +195,26 @@
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.Group <androidx.constraintlayout.widget.Group
android:id="@+id/grpFrom"
android:id="@+id/grpReady"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
app:constraint_referenced_ids="spFrom,ivIdentityAdd" />
app:constraint_referenced_ids="etTo,ivToAdd,etSubject,vSeparator,scroll,bottom_navigation" />
<androidx.constraintlayout.widget.Group <androidx.constraintlayout.widget.Group
android:id="@+id/grpAddresses"
android:id="@+id/grpHeader"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
app:constraint_referenced_ids="etCc,ivCcAdd,etBcc,ivBccAdd" />
app:constraint_referenced_ids="spFrom,ivIdentityAdd,etTo,ivToAdd,etSubject,vSeparator" />
<androidx.constraintlayout.widget.Group <androidx.constraintlayout.widget.Group
android:id="@+id/grpAttachments"
android:id="@+id/grpAddresses"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
app:constraint_referenced_ids="vSeparatorAttachments,rvAttachment" />
app:constraint_referenced_ids="etCc,ivCcAdd,etBcc,ivBccAdd" />
<androidx.constraintlayout.widget.Group <androidx.constraintlayout.widget.Group
android:id="@+id/grpReady"
android:id="@+id/grpAttachments"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
app:constraint_referenced_ids="etTo,ivToAdd,etSubject,vSeparator,scroll,bottom_navigation" />
app:constraint_referenced_ids="vSeparatorAttachments,rvAttachment" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

+ 24
- 6
app/src/main/res/layout/fragment_message.xml View File

@ -233,6 +233,18 @@
android:textIsSelectable="true" /> android:textIsSelectable="true" />
</ScrollView> </ScrollView>
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:layout_margin="16dp"
android:src="@drawable/baseline_fullscreen_24"
android:tint="@color/colorActionForeground"
app:backgroundTint="?attr/colorAccent"
app:layout_constraintBottom_toBottomOf="@+id/scroll"
app:layout_constraintEnd_toEndOf="parent" />
<com.google.android.material.bottomnavigation.BottomNavigationView <com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/bottom_navigation" android:id="@+id/bottom_navigation"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -259,20 +271,26 @@
app:layout_constraintTop_toTopOf="parent" /> app:layout_constraintTop_toTopOf="parent" />
<androidx.constraintlayout.widget.Group <androidx.constraintlayout.widget.Group
android:id="@+id/grpAddresses"
android:id="@+id/grpReady"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
app:constraint_referenced_ids="vSeparatorAddress,tvReplyToTitle,tvReplyTo,tvCcTitle,tvCc,tvBccTitle,tvBcc" />
app:constraint_referenced_ids="tvFrom,tvToTitle,tvTo,tvTime,tvSubject,tvCount,scroll,fab" />
<androidx.constraintlayout.widget.Group <androidx.constraintlayout.widget.Group
android:id="@+id/grpAttachments"
android:id="@+id/grpHeader"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
app:constraint_referenced_ids="vSeparatorAttachments,rvAttachment" />
app:constraint_referenced_ids="tvFrom,tvToTitle,tvTo,tvTime,tvSubject,tvCount,top_navigation" />
<androidx.constraintlayout.widget.Group <androidx.constraintlayout.widget.Group
android:id="@+id/grpReady"
android:id="@+id/grpAddresses"
android:layout_width="0dp"
android:layout_height="0dp"
app:constraint_referenced_ids="vSeparatorAddress,tvReplyToTitle,tvReplyTo,tvCcTitle,tvCc,tvBccTitle,tvBcc" />
<androidx.constraintlayout.widget.Group
android:id="@+id/grpAttachments"
android:layout_width="0dp" android:layout_width="0dp"
android:layout_height="0dp" android:layout_height="0dp"
app:constraint_referenced_ids="tvFrom,tvToTitle,tvTo,tvTime,tvSubject,tvCount,scroll" />
app:constraint_referenced_ids="vSeparatorAttachments,rvAttachment" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

Loading…
Cancel
Save