From f3aaeca24c0e4d0dc1c0eaaae4adaa2c48f29a5d Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 18 Feb 2019 09:19:12 +0000 Subject: [PATCH] Added reply CC rule parameter --- .../main/java/eu/faircode/email/EntityRule.java | 3 +++ .../main/java/eu/faircode/email/FragmentRule.java | 7 +++++++ app/src/main/res/layout/fragment_rule.xml | 15 +++++++++++++-- app/src/main/res/values/strings.xml | 1 + 4 files changed, 24 insertions(+), 2 deletions(-) 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