From 91ff9722961143bf3564590c298122e9064fb281 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 18 May 2023 22:33:16 +0200 Subject: [PATCH] Added option to start with two rows or two columns --- .../main/java/eu/faircode/email/ActivityView.java | 6 ++++-- .../eu/faircode/email/FragmentOptionsDisplay.java | 14 +++++++++++++- .../main/res/layout/fragment_options_display.xml | 15 ++++++++++++++- app/src/main/res/values/strings.xml | 1 + 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index 19d88d75b2..6ff8031b70 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -245,6 +245,8 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB " portrait rows=" + portrait2 + " cols=" + portrait2c + " min=" + portrait_min_size + " landscape cols=" + landscape + " min=" + landscape); boolean duo = Helper.isSurfaceDuo(); + boolean close_pane = prefs.getBoolean("close_pane", !duo); + boolean open_pane = (!close_pane && prefs.getBoolean("open_pane", false)); boolean nav_categories = prefs.getBoolean("nav_categories", false); // 1=small, 2=normal, 3=large, 4=xlarge @@ -708,8 +710,8 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB // Initialize if (content_pane != null) { - content_separator.setVisibility(duo ? View.INVISIBLE : View.GONE); - content_pane.setVisibility(duo ? View.INVISIBLE : View.GONE); + content_separator.setVisibility(duo || open_pane ? View.INVISIBLE : View.GONE); + content_pane.setVisibility(duo || open_pane ? View.INVISIBLE : View.GONE); } if (getSupportFragmentManager().getFragments().size() == 0 && diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java index 9467e2d288..d09bd6a288 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java @@ -85,6 +85,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer private SwitchCompat swLandscape; private Spinner spLandscapeMinSize; private SwitchCompat swClosePane; + private SwitchCompat swOpenPane; private TextView tvColumnWidth; private SeekBar sbColumnWidth; private SwitchCompat swHideToolbar; @@ -199,7 +200,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer "theme", "startup", "date", "date_week", "date_fixed", "date_bold", "group_category", "cards", "beige", "tabular_card_bg", "shadow_unread", "shadow_border", "shadow_highlight", "dividers", - "portrait2", "portrait2c", "landscape", "close_pane", "column_width", + "portrait2", "portrait2c", "landscape", "close_pane", "open_pane", "column_width", "hide_toolbar", "nav_options", "nav_categories", "nav_last_sync", "nav_count", "nav_unseen_drafts", "nav_count_pinned", "navbar_colorize", "threading", "threading_unread", "indentation", "seekbar", "actionbar", "actionbar_swap", "actionbar_color", "highlight_unread", "highlight_color", "color_stripe", "color_stripe_wide", @@ -252,6 +253,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer swLandscape = view.findViewById(R.id.swLandscape); spLandscapeMinSize = view.findViewById(R.id.spLandscapeMinSize); swClosePane = view.findViewById(R.id.swClosePane); + swOpenPane = view.findViewById(R.id.swOpenPane); tvColumnWidth = view.findViewById(R.id.tvColumnWidth); sbColumnWidth = view.findViewById(R.id.sbColumnWidth); swHideToolbar = view.findViewById(R.id.swHideToolbar); @@ -565,6 +567,14 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { prefs.edit().putBoolean("close_pane", checked).apply(); + swOpenPane.setEnabled(!checked); + } + }); + + swOpenPane.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("open_pane", checked).apply(); } }); @@ -1435,6 +1445,8 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer swLandscape.setChecked(prefs.getBoolean("landscape", true)); spLandscapeMinSize.setSelection(prefs.getInt("landscape_min_size", 0)); swClosePane.setChecked(prefs.getBoolean("close_pane", !Helper.isSurfaceDuo())); + swOpenPane.setChecked(prefs.getBoolean("open_pane", false)); + swOpenPane.setEnabled(!swClosePane.isChecked()); int column_width = prefs.getInt("column_width", 67); tvColumnWidth.setText(getString(R.string.title_advanced_column_width, NF.format(column_width))); diff --git a/app/src/main/res/layout/fragment_options_display.xml b/app/src/main/res/layout/fragment_options_display.xml index 98ff6f8318..6e5ae8a3a7 100644 --- a/app/src/main/res/layout/fragment_options_display.xml +++ b/app/src/main/res/layout/fragment_options_display.xml @@ -494,6 +494,19 @@ app:layout_constraintTop_toBottomOf="@id/tvLandscapeSplitMinHint" app:switchPadding="12dp" /> + + + app:layout_constraintTop_toBottomOf="@id/swOpenPane" /> Use two columns Minimum screen size for splitting the screen Collapse row or column when closing a conversation + Start with two rows or two columns Message column width / row height: %1$s %% Hide top toolbar when scrolling messages Show navigation menu options