Added rule groups

This commit is contained in:
M66B
2023-04-01 18:46:05 +02:00
parent f62fa2ee4c
commit 920fb87dbf
8 changed files with 3079 additions and 2 deletions

View File

@@ -86,6 +86,7 @@ public class FragmentRule extends FragmentBase {
private TextView tvFolder;
private EditText etName;
private EditText etGroup;
private EditText etOrder;
private CheckBox cbEnabled;
private CheckBox cbDaily;
@@ -268,6 +269,7 @@ public class FragmentRule extends FragmentBase {
tvFolder = view.findViewById(R.id.tvFolder);
etName = view.findViewById(R.id.etName);
etGroup = view.findViewById(R.id.etGroup);
etOrder = view.findViewById(R.id.etOrder);
cbEnabled = view.findViewById(R.id.cbEnabled);
cbDaily = view.findViewById(R.id.cbDaily);
@@ -1168,6 +1170,7 @@ public class FragmentRule extends FragmentBase {
JSONObject jschedule = jcondition.optJSONObject("schedule");
etName.setText(rule == null ? args.getString("subject") : rule.name);
etGroup.setText(rule == null ? null : rule.group);
etOrder.setText(rule == null ? null : Integer.toString(rule.order));
cbEnabled.setChecked(rule == null || rule.enabled);
cbDaily.setChecked(rule != null && rule.daily);
@@ -1403,6 +1406,7 @@ public class FragmentRule extends FragmentBase {
args.putLong("id", id);
args.putLong("folder", folder);
args.putString("name", etName.getText().toString());
args.putString("group", etGroup.getText().toString().trim());
args.putString("order", etOrder.getText().toString());
args.putBoolean("enabled", cbEnabled.isChecked());
args.putBoolean("daily", cbDaily.isChecked());
@@ -1426,6 +1430,7 @@ public class FragmentRule extends FragmentBase {
long id = args.getLong("id");
long folder = args.getLong("folder");
String name = args.getString("name");
String group = args.getString("group");
String order = args.getString("order");
boolean enabled = args.getBoolean("enabled");
boolean daily = args.getBoolean("daily");
@@ -1436,6 +1441,9 @@ public class FragmentRule extends FragmentBase {
if (TextUtils.isEmpty(name))
throw new IllegalArgumentException(context.getString(R.string.title_rule_name_missing));
if (TextUtils.isEmpty(group))
group = null;
JSONObject jcondition = new JSONObject(condition);
JSONObject jsender = jcondition.optJSONObject("sender");
JSONObject jrecipient = jcondition.optJSONObject("recipient");
@@ -1463,6 +1471,7 @@ public class FragmentRule extends FragmentBase {
EntityRule rule = new EntityRule();
rule.folder = folder;
rule.name = name;
rule.group = group;
rule.order = Integer.parseInt(order);
rule.enabled = enabled;
rule.daily = daily;
@@ -1475,6 +1484,7 @@ public class FragmentRule extends FragmentBase {
EntityRule rule = db.rule().getRule(id);
rule.folder = folder;
rule.name = name;
rule.group = group;
rule.order = Integer.parseInt(order);
rule.enabled = enabled;
rule.daily = daily;