mirror of https://github.com/M66B/FairEmail.git
Added rule export/import
This commit is contained in:
parent
91ccd85c5b
commit
c560cbc71d
|
@ -473,8 +473,14 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On
|
|||
|
||||
// Folders
|
||||
JSONArray jfolders = new JSONArray();
|
||||
for (EntityFolder folder : db.folder().getFolders(account.id))
|
||||
jfolders.put(folder.toJSON());
|
||||
for (EntityFolder folder : db.folder().getFolders(account.id)) {
|
||||
JSONObject jfolder = folder.toJSON();
|
||||
JSONArray jrules = new JSONArray();
|
||||
for (EntityRule rule : db.rule().getRules(folder.id))
|
||||
jrules.put(rule.toJSON());
|
||||
jfolder.put("rules", jrules);
|
||||
jfolders.put(jfolder);
|
||||
}
|
||||
jaccount.put("folders", jfolders);
|
||||
|
||||
jaccounts.put(jaccount);
|
||||
|
@ -606,6 +612,15 @@ public class ActivitySetup extends ActivityBilling implements FragmentManager.On
|
|||
EntityFolder folder = EntityFolder.fromJSON(jfolder);
|
||||
folder.account = account.id;
|
||||
folder.id = db.folder().insertFolder(folder);
|
||||
if (jfolder.has("rules")) {
|
||||
JSONArray jrules = jfolder.getJSONArray("rules");
|
||||
for (int r = 0; r < jrules.length(); r++) {
|
||||
JSONObject jrule = (JSONObject) jrules.get(r);
|
||||
EntityRule rule = EntityRule.fromJSON(jrule);
|
||||
rule.folder = folder.id;
|
||||
db.rule().insertRule(rule);
|
||||
}
|
||||
}
|
||||
Log.i("Imported folder=" + folder.name);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,6 +29,11 @@ import androidx.room.Update;
|
|||
|
||||
@Dao
|
||||
public interface DaoRule {
|
||||
@Query("SELECT * FROM rule" +
|
||||
" WHERE folder = :folder" +
|
||||
" ORDER BY `order`")
|
||||
List<EntityRule> getRules(long folder);
|
||||
|
||||
@Query("SELECT * FROM rule" +
|
||||
" WHERE folder = :folder" +
|
||||
" AND enabled" +
|
||||
|
|
|
@ -198,4 +198,26 @@ public class EntityRule {
|
|||
} else
|
||||
return false;
|
||||
}
|
||||
|
||||
public JSONObject toJSON() throws JSONException {
|
||||
JSONObject json = new JSONObject();
|
||||
json.put("name", name);
|
||||
json.put("order", order);
|
||||
json.put("enabled", enabled);
|
||||
json.put("stop", stop);
|
||||
json.put("condition", condition);
|
||||
json.put("action", action);
|
||||
return json;
|
||||
}
|
||||
|
||||
public static EntityRule fromJSON(JSONObject json) throws JSONException {
|
||||
EntityRule rule = new EntityRule();
|
||||
rule.name = json.getString("name");
|
||||
rule.order = json.getInt("order");
|
||||
rule.enabled = json.getBoolean("enabled");
|
||||
rule.stop = json.getBoolean("stop");
|
||||
rule.condition = json.getString("condition");
|
||||
rule.action = json.getString("action");
|
||||
return rule;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue