diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index f96d9aeea2..1cbdc4c0b1 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -3601,8 +3601,9 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. int count = (values.containsKey("expanded") ? values.get("expanded").size() : 0); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); - boolean collapse = prefs.getBoolean("collapse", false); - if ((count == 1 && collapse) || count > 1) { + boolean collapse_single = prefs.getBoolean("collapse_single", false); + boolean collapse_multiple = prefs.getBoolean("collapse_multiple", true); + if ((collapse_single && count == 1) || (collapse_multiple && count > 1)) { values.get("expanded").clear(); updateExpanded(); adapter.notifyDataSetChanged(); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java index 321a0133d3..d2fb9db814 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java @@ -49,7 +49,8 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe private SwitchCompat swExpandOne; private SwitchCompat swAutoClose; private Spinner spOnClose; - private SwitchCompat swCollapse; + private SwitchCompat swCollapseSingle; + private SwitchCompat swCollapseMultiple; private SwitchCompat swAutoRead; private SwitchCompat swAutoUnflag; private SwitchCompat swAutoMove; @@ -57,7 +58,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe private final static String[] RESET_OPTIONS = new String[]{ "pull", "autoscroll", "doubletap", "swipenav", "reversed", "autoexpand", "expand_one", "autoclose", "onclose", - "collapse", "autoread", "autounflag", "automove", "discard_delete" + "collapse_single", "collapse_multiple", "autoread", "autounflag", "automove", "discard_delete" }; @Override @@ -79,7 +80,8 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe swExpandOne = view.findViewById(R.id.swExpandOne); swAutoClose = view.findViewById(R.id.swAutoClose); spOnClose = view.findViewById(R.id.spOnClose); - swCollapse = view.findViewById(R.id.swCollapse); + swCollapseSingle = view.findViewById(R.id.swCollapseSingle); + swCollapseMultiple = view.findViewById(R.id.swCollapseMultiple); swAutoRead = view.findViewById(R.id.swAutoRead); swAutoUnflag = view.findViewById(R.id.swAutoUnflag); swAutoMove = view.findViewById(R.id.swAutoMove); @@ -165,10 +167,17 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe } }); - swCollapse.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + swCollapseSingle.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { - prefs.edit().putBoolean("collapse", checked).apply(); + prefs.edit().putBoolean("collapse_single", checked).apply(); + } + }); + + swCollapseMultiple.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("collapse_multiple", checked).apply(); } }); @@ -265,7 +274,8 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe spOnClose.setEnabled(!swAutoClose.isChecked()); - swCollapse.setChecked(prefs.getBoolean("collapse", false)); + swCollapseSingle.setChecked(prefs.getBoolean("collapse_single", false)); + swCollapseMultiple.setChecked(prefs.getBoolean("collapse_multiple", true)); swAutoRead.setChecked(prefs.getBoolean("autoread", false)); swAutoUnflag.setChecked(prefs.getBoolean("autounflag", false)); swAutoMove.setChecked(!prefs.getBoolean("automove", false)); diff --git a/app/src/main/res/layout/fragment_options_behavior.xml b/app/src/main/res/layout/fragment_options_behavior.xml index a5c4edf280..57c2fd770f 100644 --- a/app/src/main/res/layout/fragment_options_behavior.xml +++ b/app/src/main/res/layout/fragment_options_behavior.xml @@ -105,27 +105,26 @@ app:switchPadding="12dp" /> - + app:layout_constraintTop_toBottomOf="@id/swCollapseSingle" + app:switchPadding="12dp" /> Reverse navigation direction Automatically expand messages Expand only one message at a time - Collapse messages in conversations on \'back\' + Collapse single message in a conversation on \'back\' + Collapse multiple messages in a conversation on \'back\' Automatically close conversations On closing a conversation Automatically mark messages read on moving messages @@ -355,7 +356,6 @@ Inline images are images included in the message Automatically open message when there is just one message or just one unread message in a conversation - Multiple expanded messages will always be closed on \'back\' Automatically close conversations when all messages are archived, sent or trashed Most providers do not allow modified sender addresses