diff --git a/app/src/main/java/eu/faircode/email/ActivityView.java b/app/src/main/java/eu/faircode/email/ActivityView.java index d2867b4355..defe72f4b1 100644 --- a/app/src/main/java/eu/faircode/email/ActivityView.java +++ b/app/src/main/java/eu/faircode/email/ActivityView.java @@ -1110,10 +1110,11 @@ public class ActivityView extends ActivityBilling implements FragmentManager.OnB drawerToggle.setDrawerIndicatorEnabled(count == 1); if (content_pane != null) { - boolean duo = Helper.isSurfaceDuo(); + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); + boolean close_pane = prefs.getBoolean("close_pane", !Helper.isSurfaceDuo()); boolean thread = "thread".equals(getSupportFragmentManager().getBackStackEntryAt(count - 1).getName()); Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.content_pane); - int visibility = (!thread || fragment == null ? (duo ? View.INVISIBLE : View.GONE) : View.VISIBLE); + int visibility = (!thread || fragment == null ? (close_pane ? View.GONE : View.INVISIBLE) : View.VISIBLE); content_separator.setVisibility(visibility); content_pane.setVisibility(visibility); } diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java index 529da694ec..3fff8aff89 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java @@ -73,6 +73,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer private Spinner spPortraitMinSize; private SwitchCompat swLandscape; private Spinner spLandscapeMinSize; + private SwitchCompat swClosePane; private SwitchCompat swNavOptions; private SwitchCompat swNavMessageCount; private SwitchCompat swNavUnseenDrafts; @@ -166,7 +167,8 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer private final static String[] RESET_OPTIONS = new String[]{ "theme", "startup", "cards", "beige", "tabular_card_bg", "shadow_unread", "shadow_highlight", "date", "date_fixed", "date_bold", - "portrait2", "portrait2c", "landscape", "nav_options", "nav_count", "nav_unseen_drafts", "navbar_colorize", + "portrait2", "portrait2c", "landscape", "close_pane", + "nav_options", "nav_count", "nav_unseen_drafts", "navbar_colorize", "threading", "threading_unread", "indentation", "seekbar", "actionbar", "actionbar_color", "highlight_unread", "highlight_color", "color_stripe", "color_stripe_wide", "avatars", "bimi", "gravatars", "favicons", "generated_icons", "identicons", "circular", "saturation", "brightness", "threshold", @@ -208,6 +210,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer spPortraitMinSize = view.findViewById(R.id.spPortraitMinSize); swLandscape = view.findViewById(R.id.swLandscape); spLandscapeMinSize = view.findViewById(R.id.spLandscapeMinSize); + swClosePane = view.findViewById(R.id.swClosePane); swNavOptions = view.findViewById(R.id.swNavOptions); swNavMessageCount = view.findViewById(R.id.swNavMessageCount); swNavUnseenDrafts = view.findViewById(R.id.swNavUnseenDrafts); @@ -439,6 +442,13 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer } }); + swClosePane.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("close_pane", checked).apply(); + } + }); + swNavOptions.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -1145,6 +1155,7 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer spPortraitMinSize.setSelection(prefs.getInt("portrait_min_size", 0)); swLandscape.setChecked(prefs.getBoolean("landscape", true)); spLandscapeMinSize.setSelection(prefs.getInt("landscape_min_size", 0)); + swClosePane.setChecked(prefs.getBoolean("close_pane", !Helper.isSurfaceDuo())); swNavOptions.setChecked(prefs.getBoolean("nav_options", true)); swNavMessageCount.setChecked(prefs.getBoolean("nav_count", false)); swNavUnseenDrafts.setChecked(prefs.getBoolean("nav_unseen_drafts", false)); diff --git a/app/src/main/res/layout/fragment_options_display.xml b/app/src/main/res/layout/fragment_options_display.xml index 66de4da18c..6576d9cf25 100644 --- a/app/src/main/res/layout/fragment_options_display.xml +++ b/app/src/main/res/layout/fragment_options_display.xml @@ -409,6 +409,18 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/spLandscapeMinSize" /> + + Use two rows Use two columns Minimum screen size for splitting the screen + Collapse row or column when closing a conversation Show navigation menu options Pin navigation menu Hide navigation menu options?