diff --git a/app/src/apkFlavor/java/com/jens/automation2/Rule.java b/app/src/apkFlavor/java/com/jens/automation2/Rule.java index 94bc569..80a98ec 100644 --- a/app/src/apkFlavor/java/com/jens/automation2/Rule.java +++ b/app/src/apkFlavor/java/com/jens/automation2/Rule.java @@ -175,6 +175,15 @@ public class Rule implements Comparable Miscellaneous.logEvent("i", "Rule", "Creating rule: " + this.toString(), 3); ruleCollection.add(this); boolean returnValue = XmlFileInterface.writeFile(); + + try + { + XmlFileInterface.readFile(); + } + catch(Exception e) + { + Miscellaneous.logEvent("w", "Read file", Log.getStackTraceString(e), 3); + } if(returnValue) { @@ -218,6 +227,19 @@ public class Rule implements Comparable return XmlFileInterface.writeFile(); } + + public boolean cloneRule(Context context) + { + Rule newRule = new Rule(); + newRule.setName(this.getName() + " - clone"); + newRule.setRuleActive(this.isRuleActive()); + newRule.setRuleToggle(this.isRuleToggle()); + + newRule.setTriggerSet(this.getTriggerSet()); + newRule.setActionSet(this.getActionSet()); + + return newRule.create(context); + } private boolean checkBeforeSaving(Context context, boolean changeExistingRule) { @@ -876,17 +898,6 @@ public class Rule implements Comparable return false; } - public boolean cloneRule(Context context) - { - Rule newRule = new Rule(); - newRule.setName(this.getName() + " - clone"); - newRule.setRuleActive(this.isRuleActive()); - newRule.setRuleToggle(this.isRuleToggle()); - newRule.setTriggerSet(this.getTriggerSet()); - newRule.setActionSet(this.getActionSet()); - return newRule.create(context); - } - private class ActivateRuleTask extends AsyncTask { boolean wasActivated = false; diff --git a/app/src/fdroidFlavor/java/com/jens/automation2/Rule.java b/app/src/fdroidFlavor/java/com/jens/automation2/Rule.java index 19221db..d00ada3 100644 --- a/app/src/fdroidFlavor/java/com/jens/automation2/Rule.java +++ b/app/src/fdroidFlavor/java/com/jens/automation2/Rule.java @@ -172,6 +172,15 @@ public class Rule implements Comparable Miscellaneous.logEvent("i", "Rule", "Creating rule: " + this.toString(), 3); ruleCollection.add(this); boolean returnValue = XmlFileInterface.writeFile(); + + try + { + XmlFileInterface.readFile(); + } + catch(Exception e) + { + Miscellaneous.logEvent("w", "Read file", Log.getStackTraceString(e), 3); + } if(returnValue) { diff --git a/app/src/googlePlayFlavor/java/com/jens/automation2/Rule.java b/app/src/googlePlayFlavor/java/com/jens/automation2/Rule.java index 156f72b..dc3b5ce 100644 --- a/app/src/googlePlayFlavor/java/com/jens/automation2/Rule.java +++ b/app/src/googlePlayFlavor/java/com/jens/automation2/Rule.java @@ -174,6 +174,15 @@ public class Rule implements Comparable Miscellaneous.logEvent("i", "Rule", "Creating rule: " + this.toString(), 3); ruleCollection.add(this); boolean returnValue = XmlFileInterface.writeFile(); + + try + { + XmlFileInterface.readFile(); + } + catch(Exception e) + { + Miscellaneous.logEvent("w", "Read file", Log.getStackTraceString(e), 3); + } if(returnValue) { diff --git a/app/src/main/java/com/jens/automation2/ActivityMainRules.java b/app/src/main/java/com/jens/automation2/ActivityMainRules.java index cfb4fb6..fa037e6 100644 --- a/app/src/main/java/com/jens/automation2/ActivityMainRules.java +++ b/app/src/main/java/com/jens/automation2/ActivityMainRules.java @@ -26,10 +26,14 @@ import java.util.ArrayList; public class ActivityMainRules extends ActivityGeneric { private ListView ruleListView; + ArrayList ruleList = new ArrayList<>(); private ArrayAdapter ruleListViewAdapter; public static Rule ruleToEdit; protected static ActivityMainRules instance = null; + public static final int requestCodeCreateRule = 3000; + public static final int requestCodeChangeRule = 4000; + public static ActivityMainRules getInstance() { if(instance == null) @@ -54,13 +58,12 @@ public class ActivityMainRules extends ActivityGeneric { ruleToEdit = null; Intent startAddRuleIntent = new Intent(ActivityMainRules.this, ActivityManageRule.class); - startActivityForResult(startAddRuleIntent, 3000); + startActivityForResult(startAddRuleIntent, requestCodeCreateRule); } }); - + + ruleListViewAdapter = new RuleArrayAdapter(this, R.layout.view_for_rule_listview, ruleList); ruleListView = (ListView)findViewById(R.id.lvRuleList); - - ruleListViewAdapter = new RuleArrayAdapter(this, R.layout.view_for_rule_listview, Rule.getRuleCollection()); ruleListView.setClickable(true); ruleListView.setOnItemLongClickListener(new OnItemLongClickListener() @@ -106,7 +109,6 @@ public class ActivityMainRules extends ActivityGeneric private static class RuleArrayAdapter extends ArrayAdapter { - public RuleArrayAdapter(Context context, int resource, ArrayList objects) { super(context, resource, objects); @@ -157,13 +159,13 @@ public class ActivityMainRules extends ActivityGeneric if(AutomationService.isMyServiceRunning(this)) bindToService(); - if(requestCode == 3000) //add Rule + if(requestCode == requestCodeCreateRule) //add Rule { ruleToEdit = null; //clear cache updateListView(); } - if(requestCode == 4000) //editRule + if(requestCode == requestCodeChangeRule) //editRule { ruleToEdit = null; //clear cache updateListView(); @@ -206,16 +208,22 @@ public class ActivityMainRules extends ActivityGeneric case 1: ruleToEdit = ruleThisIsAbout; Intent manageSpecificRuleIntent = new Intent (ActivityMainRules.this, ActivityManageRule.class); - startActivityForResult(manageSpecificRuleIntent, 4000); + startActivityForResult(manageSpecificRuleIntent, requestCodeChangeRule); break; case 2: if(ruleThisIsAbout.delete()) + { + ruleToEdit = null; //clear cache updateListView(); + } break; case 3: ruleToEdit = ruleThisIsAbout; if(ruleToEdit.cloneRule(ActivityMainRules.this)) + { + ruleToEdit = null; //clear cache updateListView(); + } break; } } @@ -228,6 +236,11 @@ public class ActivityMainRules extends ActivityGeneric public void updateListView() { Miscellaneous.logEvent("i", "ListView", "Attempting to update RuleListView", 4); + + ruleList.clear(); + for(Rule r : Rule.getRuleCollection()) + ruleList.add(r); + try { if(ruleListView.getAdapter() == null) @@ -248,4 +261,4 @@ public class ActivityMainRules extends ActivityGeneric // AlarmManager instance not prepared, yet. } } -} +} \ No newline at end of file