parallel rule execution
This commit is contained in:
		| @@ -5,6 +5,7 @@ import static com.jens.automation2.Trigger.triggerParameter2Split; | ||||
| import android.annotation.SuppressLint; | ||||
| import android.content.Context; | ||||
| import android.os.AsyncTask; | ||||
| import android.os.Build; | ||||
| import android.os.Looper; | ||||
| import android.util.Log; | ||||
| import android.widget.Toast; | ||||
| @@ -18,8 +19,7 @@ import java.util.List; | ||||
| public class Rule implements Comparable<Rule> | ||||
| { | ||||
| 	private static ArrayList<Rule> ruleCollection = new ArrayList<Rule>(); | ||||
| 	public static boolean isAnyRuleActive = false; | ||||
| 	 | ||||
|  | ||||
| 	private static List<Rule> ruleRunHistory = new ArrayList<Rule>(); | ||||
| 	 | ||||
| 	public static List<Rule> getRuleRunHistory() | ||||
| @@ -409,7 +409,7 @@ public class Rule implements Comparable<Rule> | ||||
| 			 | ||||
| 			Thread.setDefaultUncaughtExceptionHandler(Miscellaneous.uncaughtExceptionHandler); | ||||
|  | ||||
| 			// without this line debugger will - for some reason - skip all breakpoints in this class | ||||
| 			// without this line the debugger will - for some reason - skip all breakpoints in this class | ||||
| 			if(android.os.Debug.isDebuggerConnected()) | ||||
| 				android.os.Debug.waitForDebugger(); | ||||
| 			 | ||||
| @@ -511,7 +511,10 @@ public class Rule implements Comparable<Rule> | ||||
| 	public void activate(AutomationService automationService, boolean force) | ||||
| 	{ | ||||
| 		ActivateRuleTask task = new ActivateRuleTask(); | ||||
| 		task.execute(automationService, force); | ||||
| 		if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) | ||||
| 			task.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, automationService, force); | ||||
| 		else | ||||
| 			task.execute(automationService, force); | ||||
| 	} | ||||
|  | ||||
| 	public static ArrayList<Rule> findRuleCandidates(Trigger.Trigger_Enum triggerType) | ||||
| @@ -520,13 +523,13 @@ public class Rule implements Comparable<Rule> | ||||
|  | ||||
| 		for(Rule oneRule : ruleCollection) | ||||
| 		{ | ||||
| 			innerloop: | ||||
| 			innerLoop: | ||||
| 			for(Trigger oneTrigger : oneRule.getTriggerSet()) | ||||
| 			{ | ||||
| 				if(oneTrigger.getTriggerType().equals(triggerType)) | ||||
| 				{ | ||||
| 					ruleCandidates.add(oneRule); | ||||
| 					break innerloop; // we don't need to check the other triggers in the same rule | ||||
| 					break innerLoop; // we don't need to check the other triggers in the same rule | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user