diff --git a/app/src/main/java/eu/faircode/email/EntityRule.java b/app/src/main/java/eu/faircode/email/EntityRule.java
index 713f27bd3a..2c4dbc1062 100644
--- a/app/src/main/java/eu/faircode/email/EntityRule.java
+++ b/app/src/main/java/eu/faircode/email/EntityRule.java
@@ -194,6 +194,7 @@ public class EntityRule {
private void onActionAnswer(Context context, DB db, EntityMessage message, JSONObject jargs) throws JSONException, IOException {
long iid = jargs.getLong("identity");
long aid = jargs.getLong("answer");
+ boolean cc = (jargs.has("cc") && jargs.getBoolean("cc"));
EntityIdentity identity = db.identity().getIdentity(iid);
if (identity == null)
@@ -213,6 +214,8 @@ public class EntityRule {
reply.thread = message.thread;
reply.to = (message.reply == null || message.reply.length == 0 ? message.from : message.reply);
reply.from = new InternetAddress[]{new InternetAddress(identity.email, identity.name)};
+ if (cc)
+ reply.cc = message.cc;
reply.subject = context.getString(R.string.title_subject_reply, message.subject == null ? "" : message.subject);
reply.sender = MessageHelper.getSortKey(reply.from);
reply.received = new Date().getTime();
diff --git a/app/src/main/java/eu/faircode/email/FragmentRule.java b/app/src/main/java/eu/faircode/email/FragmentRule.java
index 83365a5be5..f5a48c315d 100644
--- a/app/src/main/java/eu/faircode/email/FragmentRule.java
+++ b/app/src/main/java/eu/faircode/email/FragmentRule.java
@@ -78,6 +78,7 @@ public class FragmentRule extends FragmentBase {
private Spinner spTarget;
private Spinner spIdent;
private Spinner spAnswer;
+ private CheckBox cbCc;
private BottomNavigationView bottom_navigation;
private ContentLoadingProgressBar pbWait;
private Group grpReady;
@@ -128,6 +129,7 @@ public class FragmentRule extends FragmentBase {
spTarget = view.findViewById(R.id.spTarget);
spIdent = view.findViewById(R.id.spIdent);
spAnswer = view.findViewById(R.id.spAnswer);
+ cbCc = view.findViewById(R.id.cbCc);
bottom_navigation = view.findViewById(R.id.bottom_navigation);
pbWait = view.findViewById(R.id.pbWait);
grpReady = view.findViewById(R.id.grpReady);
@@ -378,6 +380,9 @@ public class FragmentRule extends FragmentBase {
spAnswer.setSelection(pos);
break;
}
+
+ boolean cc = (jaction.has("cc") && jaction.getBoolean("cc"));
+ cbCc.setChecked(cc);
break;
}
@@ -601,8 +606,10 @@ public class FragmentRule extends FragmentBase {
case EntityRule.TYPE_ANSWER:
EntityIdentity identity = (EntityIdentity) spIdent.getSelectedItem();
EntityAnswer answer = (EntityAnswer) spAnswer.getSelectedItem();
+ boolean cc = cbCc.isChecked();
jaction.put("identity", identity.id);
jaction.put("answer", answer.id);
+ jaction.put("cc", cc);
break;
}
}
diff --git a/app/src/main/res/layout/fragment_rule.xml b/app/src/main/res/layout/fragment_rule.xml
index c67ec8c975..5a5a94a9cb 100644
--- a/app/src/main/res/layout/fragment_rule.xml
+++ b/app/src/main/res/layout/fragment_rule.xml
@@ -334,6 +334,15 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvAnswerTemplate" />
+
+
+ app:constraint_referenced_ids="
+ tvMoveTarget,spTarget" />
+ app:constraint_referenced_ids="
+ tvAnswerIdentity,spIdent,tvAnswerTemplate,spAnswer,cbCc" />
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index fa5e48fd23..e0bf19c50e 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -436,6 +436,7 @@
Folder
Identity
Reply template
+ Reply to CC addresses
Rule name missing
Condition missing