diff --git a/app/src/main/java/eu/faircode/email/FragmentMessages.java b/app/src/main/java/eu/faircode/email/FragmentMessages.java index cd80ceaef4..6cbc82a0d2 100644 --- a/app/src/main/java/eu/faircode/email/FragmentMessages.java +++ b/app/src/main/java/eu/faircode/email/FragmentMessages.java @@ -2535,9 +2535,11 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences. if (message == null) return; - if (sender && message.content) - onMenuReply(message, "reply", selected); - else + if (sender && message.content) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); + boolean reply_all = prefs.getBoolean("reply_all", false); + onMenuReply(message, reply_all ? "reply_all" : "reply", selected); + } else onReply(message, selected, fabReply); } } diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java index 10d3d086f4..3ae6de9ad2 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java @@ -91,6 +91,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe private SwitchCompat swAutoUnflag; private SwitchCompat swAutoImportant; private SwitchCompat swResetImportance; + private SwitchCompat swReplyAll; final static int MAX_SWIPE_SENSITIVITY = 10; final static int DEFAULT_SWIPE_SENSITIVITY = 7; @@ -103,7 +104,8 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe "autoexpand", "expand_first", "expand_all", "expand_one", "collapse_multiple", "autoclose", "onclose", "autoclose_unseen", "undo_timeout", - "autoread", "flag_snoozed", "autounflag", "auto_important", "reset_importance" + "autoread", "flag_snoozed", "autounflag", "auto_important", "reset_importance", + "reply_all" }; @Override @@ -150,6 +152,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe swAutoUnflag = view.findViewById(R.id.swAutoUnflag); swAutoImportant = view.findViewById(R.id.swAutoImportant); swResetImportance = view.findViewById(R.id.swResetImportance); + swReplyAll = view.findViewById(R.id.swReplyAll); setOptions(); @@ -445,6 +448,13 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe } }); + swReplyAll.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { + prefs.edit().putBoolean("reply_all", checked).apply(); + } + }); + // Initialize FragmentDialogTheme.setBackground(getContext(), view, false); @@ -549,6 +559,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe swAutoUnflag.setChecked(prefs.getBoolean("autounflag", false)); swAutoImportant.setChecked(prefs.getBoolean("auto_important", false)); swResetImportance.setChecked(prefs.getBoolean("reset_importance", false)); + swReplyAll.setChecked(prefs.getBoolean("reply_all", false)); } public static class FragmentDialogSwipes extends FragmentDialogBase { diff --git a/app/src/main/res/layout/fragment_options_behavior.xml b/app/src/main/res/layout/fragment_options_behavior.xml index 32c9ac4c1f..4a77d490d2 100644 --- a/app/src/main/res/layout/fragment_options_behavior.xml +++ b/app/src/main/res/layout/fragment_options_behavior.xml @@ -616,6 +616,17 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/swAutoImportant" app:switchPadding="12dp" /> + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0ae92a5fd0..4532def47e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -510,6 +510,7 @@ Automatically remove stars from messages on moving messages Automatically make starred messages important Reset importance on moving messages + Long press the answer button to reply to all Default snooze time Manage notifications