From 5286287b7353ce2166283fb79403a5fe0286569a Mon Sep 17 00:00:00 2001 From: M66B Date: Fri, 13 Sep 2019 11:00:31 +0200 Subject: [PATCH] Added compact compose view --- .../java/eu/faircode/email/ApplicationEx.java | 7 ++ .../eu/faircode/email/FragmentCompose.java | 66 +++++++++++++------ app/src/main/res/layout/fragment_compose.xml | 4 +- app/src/main/res/menu/menu_compose.xml | 8 ++- 4 files changed, 62 insertions(+), 23 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ApplicationEx.java b/app/src/main/java/eu/faircode/email/ApplicationEx.java index c8bde5f235..e476cd28ef 100644 --- a/app/src/main/java/eu/faircode/email/ApplicationEx.java +++ b/app/src/main/java/eu/faircode/email/ApplicationEx.java @@ -150,8 +150,15 @@ public class ApplicationEx extends Application { editor.putBoolean("suggest_sent", true); editor.remove("suggest_local"); } + + } else if (version < 703) { + if (!prefs.getBoolean("style_toolbar", true)) { + editor.putBoolean("compose_media", false); + editor.remove("style_toolbar"); + } } + if (BuildConfig.DEBUG && false) { editor.remove("app_support"); editor.remove("notify_archive"); diff --git a/app/src/main/java/eu/faircode/email/FragmentCompose.java b/app/src/main/java/eu/faircode/email/FragmentCompose.java index c2d3f55348..4ea9aacef6 100644 --- a/app/src/main/java/eu/faircode/email/FragmentCompose.java +++ b/app/src/main/java/eu/faircode/email/FragmentCompose.java @@ -183,7 +183,7 @@ public class FragmentCompose extends FragmentBase { private ImageButton ibReferenceDelete; private ImageButton ibReferenceEdit; private ImageButton ibReferenceImages; - private BottomNavigationView edit_bar; + private BottomNavigationView media_bar; private BottomNavigationView bottom_navigation; private ContentLoadingProgressBar pbWait; private Group grpHeader; @@ -199,7 +199,8 @@ public class FragmentCompose extends FragmentBase { private boolean prefix_once = false; private boolean monospaced = false; - private boolean style = true; + private boolean media = true; + private boolean compact = false; private long working = -1; private State state = State.NONE; @@ -242,7 +243,8 @@ public class FragmentCompose extends FragmentBase { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); prefix_once = prefs.getBoolean("prefix_once", true); monospaced = prefs.getBoolean("monospaced", false); - style = prefs.getBoolean("style_toolbar", true); + media = prefs.getBoolean("compose_media", true); + compact = prefs.getBoolean("compose_compact", false); setTitle(R.string.page_compose); setSubtitle(getResources().getQuantityString(R.plurals.page_message, 1)); @@ -276,7 +278,7 @@ public class FragmentCompose extends FragmentBase { ibReferenceDelete = view.findViewById(R.id.ibReferenceDelete); ibReferenceEdit = view.findViewById(R.id.ibReferenceEdit); ibReferenceImages = view.findViewById(R.id.ibReferenceImages); - edit_bar = view.findViewById(R.id.edit_bar); + media_bar = view.findViewById(R.id.media_bar); bottom_navigation = view.findViewById(R.id.bottom_navigation); pbWait = view.findViewById(R.id.pbWait); @@ -423,10 +425,10 @@ public class FragmentCompose extends FragmentBase { PackageManager pm = getContext().getPackageManager(); Intent take_photo = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); Intent record_audio = new Intent(MediaStore.Audio.Media.RECORD_SOUND_ACTION); - edit_bar.getMenu().findItem(R.id.menu_take_photo).setVisible(take_photo.resolveActivity(pm) != null); - edit_bar.getMenu().findItem(R.id.menu_record_audio).setVisible(record_audio.resolveActivity(pm) != null); + media_bar.getMenu().findItem(R.id.menu_take_photo).setVisible(take_photo.resolveActivity(pm) != null); + media_bar.getMenu().findItem(R.id.menu_record_audio).setVisible(record_audio.resolveActivity(pm) != null); - edit_bar.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { + media_bar.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { int action = item.getItemId(); @@ -452,6 +454,8 @@ public class FragmentCompose extends FragmentBase { } }); + setCompact(compact); + bottom_navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem item) { @@ -470,7 +474,7 @@ public class FragmentCompose extends FragmentBase { } }); - view.getViewTreeObserver().addOnGlobalLayoutListener(layoutListener); + //view.getViewTreeObserver().addOnGlobalLayoutListener(layoutListener); addBackPressedListener(onBackPressedListener); @@ -493,7 +497,7 @@ public class FragmentCompose extends FragmentBase { ibReferenceEdit.setVisibility(View.GONE); ibReferenceImages.setVisibility(View.GONE); tvReference.setVisibility(View.GONE); - edit_bar.setVisibility(View.GONE); + media_bar.setVisibility(View.GONE); bottom_navigation.setVisibility(View.GONE); pbWait.setVisibility(View.VISIBLE); @@ -899,18 +903,21 @@ public class FragmentCompose extends FragmentBase { super.onPrepareOptionsMenu(menu); menu.findItem(R.id.menu_zoom).setVisible(state == State.LOADED); - menu.findItem(R.id.menu_media_toolbar).setVisible(state == State.LOADED); + menu.findItem(R.id.menu_media).setVisible(state == State.LOADED); + menu.findItem(R.id.menu_compact).setVisible(state == State.LOADED); menu.findItem(R.id.menu_clear).setVisible(state == State.LOADED); menu.findItem(R.id.menu_contact_group).setVisible(state == State.LOADED); menu.findItem(R.id.menu_answer).setVisible(state == State.LOADED); menu.findItem(R.id.menu_zoom).setEnabled(!busy); - menu.findItem(R.id.menu_media_toolbar).setEnabled(!busy); + menu.findItem(R.id.menu_media).setEnabled(!busy); + menu.findItem(R.id.menu_compact).setEnabled(!busy); menu.findItem(R.id.menu_clear).setEnabled(!busy); menu.findItem(R.id.menu_contact_group).setEnabled(!busy && hasPermission(Manifest.permission.READ_CONTACTS)); menu.findItem(R.id.menu_answer).setEnabled(!busy); - menu.findItem(R.id.menu_media_toolbar).setChecked(style); + menu.findItem(R.id.menu_media).setChecked(media); + menu.findItem(R.id.menu_compact).setChecked(compact); } @Override @@ -923,8 +930,11 @@ public class FragmentCompose extends FragmentBase { case R.id.menu_zoom: onMenuZoom(); return true; - case R.id.menu_media_toolbar: - onMenuStyleToolbar(); + case R.id.menu_media: + onMenuMediabar(); + return true; + case R.id.menu_compact: + onMenuCompact(); return true; case R.id.menu_clear: onMenuClear(); @@ -971,11 +981,27 @@ public class FragmentCompose extends FragmentBase { } } - private void onMenuStyleToolbar() { - style = !style; + private void onMenuMediabar() { + media = !media; SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); - prefs.edit().putBoolean("style_toolbar", style).apply(); - edit_bar.setVisibility(style ? View.VISIBLE : View.GONE); + prefs.edit().putBoolean("compose_media", media).apply(); + media_bar.setVisibility(media ? View.VISIBLE : View.GONE); + } + + private void onMenuCompact() { + compact = !compact; + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); + prefs.edit().putBoolean("compose_compact", compact).apply(); + setCompact(compact); + } + + private void setCompact(boolean compact) { + bottom_navigation.setLabelVisibilityMode(compact + ? LabelVisibilityMode.LABEL_VISIBILITY_UNLABELED + : LabelVisibilityMode.LABEL_VISIBILITY_LABELED); + ViewGroup.LayoutParams params = bottom_navigation.getLayoutParams(); + params.height = Helper.dp2pixels(view.getContext(), compact ? 36 : 56); + bottom_navigation.setLayoutParams(params); } private void onMenuClear() { @@ -3000,7 +3026,7 @@ public class FragmentCompose extends FragmentBase { autosave = true; pbWait.setVisibility(View.GONE); - edit_bar.setVisibility(style ? View.VISIBLE : View.GONE); + media_bar.setVisibility(media ? View.VISIBLE : View.GONE); bottom_navigation.getMenu().findItem(R.id.action_undo).setVisible(draft.revision != null && draft.revision > 1); bottom_navigation.getMenu().findItem(R.id.action_redo).setVisible(draft.revision != null && !draft.revision.equals(draft.revisions)); bottom_navigation.setVisibility(View.VISIBLE); @@ -3402,7 +3428,7 @@ public class FragmentCompose extends FragmentBase { @Override public void onGlobalLayout() { int bottom = view.getBottom() - - edit_bar.getHeight() + - media_bar.getHeight() - Helper.dp2pixels(view.getContext(), 56); // full bottom navigation int remain = bottom - etBody.getTop(); int threshold = Helper.dp2pixels(view.getContext(), 100); diff --git a/app/src/main/res/layout/fragment_compose.xml b/app/src/main/res/layout/fragment_compose.xml index 3a06ba1f2f..4069bd4e26 100644 --- a/app/src/main/res/layout/fragment_compose.xml +++ b/app/src/main/res/layout/fragment_compose.xml @@ -9,7 +9,7 @@ @@ -413,7 +413,7 @@ + +