Granular check header conditions

This commit is contained in:
M66B 2022-12-31 10:13:09 +01:00
parent fbdff775ee
commit dac2576484
2 changed files with 18 additions and 5 deletions

View File

@ -374,15 +374,18 @@ public class AdapterRule extends RecyclerView.Adapter<AdapterRule.ViewHolder> {
if (rule == null)
return 0;
JSONObject jcondition = new JSONObject(rule.condition);
JSONObject jheader = jcondition.optJSONObject("header");
if (jheader != null)
throw new IllegalArgumentException(context.getString(R.string.title_rule_no_headers));
List<Long> ids = db.message().getMessageIdsByFolder(rule.folder);
if (ids == null)
return 0;
// Check header conditions
for (long mid : ids) {
EntityMessage message = db.message().getMessage(mid);
if (message == null || message.ui_hide)
continue;
rule.matches(context, message, null, null);
}
int applied = 0;
for (long mid : ids)
try {

View File

@ -1172,8 +1172,18 @@ public class FragmentFolders extends FragmentBase {
List<Long> ids = db.message().getMessageIdsByFolder(fid);
if (ids == null)
return 0;
EntityLog.log(context, "Executing rules messages=" + ids.size());
// Check header conditions
for (long mid : ids) {
EntityMessage message = db.message().getMessage(mid);
if (message == null || message.ui_hide)
continue;
for (EntityRule rule : rules)
rule.matches(context, message, null, null);
}
int applied = 0;
for (long mid : ids)
try {