diff --git a/app/src/main/java/eu/faircode/email/EntityRule.java b/app/src/main/java/eu/faircode/email/EntityRule.java
index f636afcc84..41e8950c8a 100644
--- a/app/src/main/java/eu/faircode/email/EntityRule.java
+++ b/app/src/main/java/eu/faircode/email/EntityRule.java
@@ -454,6 +454,7 @@ public class EntityRule {
private boolean onActionSnooze(Context context, EntityMessage message, JSONObject jargs) throws JSONException {
int duration = jargs.getInt("duration");
boolean schedule_end = jargs.optBoolean("schedule_end", false);
+ boolean seen = jargs.optBoolean("seen", false);
long wakeup;
if (schedule_end) {
@@ -476,6 +477,9 @@ public class EntityRule {
message.ui_snoozed = wakeup;
+ if (seen)
+ onActionSeen(context, message, true);
+
return true;
}
diff --git a/app/src/main/java/eu/faircode/email/FragmentRule.java b/app/src/main/java/eu/faircode/email/FragmentRule.java
index 54742e40ba..aefaf56246 100644
--- a/app/src/main/java/eu/faircode/email/FragmentRule.java
+++ b/app/src/main/java/eu/faircode/email/FragmentRule.java
@@ -112,6 +112,7 @@ public class FragmentRule extends FragmentBase {
private NumberPicker npDuration;
private CheckBox cbScheduleEnd;
+ private CheckBox cbSnoozeSeen;
private ViewButtonColor btnColor;
@@ -218,6 +219,7 @@ public class FragmentRule extends FragmentBase {
npDuration = view.findViewById(R.id.npDuration);
cbScheduleEnd = view.findViewById(R.id.cbScheduleEnd);
+ cbSnoozeSeen = view.findViewById(R.id.cbSnoozeSeen);
btnColor = view.findViewById(R.id.btnColor);
@@ -676,6 +678,7 @@ public class FragmentRule extends FragmentBase {
case EntityRule.TYPE_SNOOZE:
npDuration.setValue(jaction.optInt("duration", 0));
cbScheduleEnd.setChecked(jaction.optBoolean("schedule_end", false));
+ cbSnoozeSeen.setChecked(jaction.optBoolean("seen", false));
break;
case EntityRule.TYPE_FLAG:
@@ -969,6 +972,7 @@ public class FragmentRule extends FragmentBase {
case EntityRule.TYPE_SNOOZE:
jaction.put("duration", npDuration.getValue());
jaction.put("schedule_end", cbScheduleEnd.isChecked());
+ jaction.put("seen", cbSnoozeSeen.isChecked());
break;
case EntityRule.TYPE_FLAG:
diff --git a/app/src/main/res/layout/fragment_rule.xml b/app/src/main/res/layout/fragment_rule.xml
index 837fdfb9c9..f5c5041f71 100644
--- a/app/src/main/res/layout/fragment_rule.xml
+++ b/app/src/main/res/layout/fragment_rule.xml
@@ -514,6 +514,15 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/npDuration" />
+
+
+ app:layout_constraintTop_toBottomOf="@id/cbSnoozeSeen" />
+ app:constraint_referenced_ids="tvHours,npDuration,cbScheduleEnd,cbSnoozeSeen" />