From ee426df7f378d6428f434ddbf1beb11ef574a152 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 10 Oct 2019 18:06:44 +0200 Subject: [PATCH] Added setting to expand all read --- .../java/eu/faircode/email/FragmentMessages.java | 9 ++++++++- .../eu/faircode/email/FragmentOptionsBehavior.java | 14 +++++++++++++- .../main/res/layout/fragment_options_behavior.xml | 13 ++++++++++++- app/src/main/res/values/strings.xml | 1 + 4 files changed, 34 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index 1cbdc4c0b1..78ccbfe280 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -1216,8 +1216,9 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. if ("expanded".equals(name)) { // Collapse other messages SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); + boolean expand_all = prefs.getBoolean("expand_all", false); boolean expand_one = prefs.getBoolean("expand_one", true); - if (expand_one) { + if (!expand_all && expand_one) { for (Long other : new ArrayList<>(values.get(name))) if (!other.equals(id)) { values.get(name).remove(other); @@ -3162,6 +3163,12 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. iProperties.setValue("expanded", expand.id, true); } + + boolean expand_all = prefs.getBoolean("expand_all", false); + if (expand_all) + for (TupleMessageEx message : messages) + if (message != null && message.ui_seen) + iProperties.setValue("expanded", message.id, true); } } else { if (autoCloseCount > 0 && (autoclose || onclose != null)) { diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java index d2fb9db814..b626ce02f4 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java @@ -46,6 +46,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe private SwitchCompat swSwipeNav; private SwitchCompat swReversed; private SwitchCompat swAutoExpand; + private SwitchCompat swExpandAll; private SwitchCompat swExpandOne; private SwitchCompat swAutoClose; private Spinner spOnClose; @@ -57,7 +58,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe private SwitchCompat swDiscardDelete; private final static String[] RESET_OPTIONS = new String[]{ - "pull", "autoscroll", "doubletap", "swipenav", "reversed", "autoexpand", "expand_one", "autoclose", "onclose", + "pull", "autoscroll", "doubletap", "swipenav", "reversed", "autoexpand", "expand_all", "expand_one", "autoclose", "onclose", "collapse_single", "collapse_multiple", "autoread", "autounflag", "automove", "discard_delete" }; @@ -77,6 +78,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe swSwipeNav = view.findViewById(R.id.swSwipeNav); swReversed = view.findViewById(R.id.swReversed); swAutoExpand = view.findViewById(R.id.swAutoExpand); + swExpandAll = view.findViewById(R.id.swExpandAll); swExpandOne = view.findViewById(R.id.swExpandOne); swAutoClose = view.findViewById(R.id.swAutoClose); spOnClose = view.findViewById(R.id.spOnClose); @@ -135,6 +137,14 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe } }); + swExpandAll.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("expand_all", checked).apply(); + swExpandOne.setEnabled(!checked); + } + }); + swExpandOne.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -261,7 +271,9 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe swSwipeNav.setChecked(prefs.getBoolean("swipenav", true)); swReversed.setChecked(prefs.getBoolean("reversed", false)); swAutoExpand.setChecked(prefs.getBoolean("autoexpand", true)); + swExpandAll.setChecked(prefs.getBoolean("expand_all", false)); swExpandOne.setChecked(prefs.getBoolean("expand_one", true)); + swExpandOne.setEnabled(!swExpandAll.isChecked()); swAutoClose.setChecked(prefs.getBoolean("autoclose", true)); String onClose = prefs.getString("onclose", ""); diff --git a/app/src/main/res/layout/fragment_options_behavior.xml b/app/src/main/res/layout/fragment_options_behavior.xml index 57c2fd770f..d6600059c1 100644 --- a/app/src/main/res/layout/fragment_options_behavior.xml +++ b/app/src/main/res/layout/fragment_options_behavior.xml @@ -93,6 +93,17 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/swAutoExpand" /> + + Swipe left/right to go to next/previous conversation Reverse navigation direction Automatically expand messages + Automatically expand all read messages Expand only one message at a time Collapse single message in a conversation on \'back\' Collapse multiple messages in a conversation on \'back\'