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