Refactoring
This commit is contained in:
		| @@ -344,14 +344,24 @@ public class Rule implements Comparable<Rule> | ||||
|  | ||||
| 	public boolean getsGreenLight(Context context) | ||||
| 	{ | ||||
| 		return isRuleActive() && applies(context) && hasNotAppliedSinceLastExecution(); | ||||
| 		if(applies(context)) | ||||
| 		{ | ||||
| 			if(hasNotAppliedSinceLastExecution()) | ||||
| 				return true; | ||||
| 			else | ||||
| 				Miscellaneous.logEvent("i", "getsGreenLight()", "Rule " + getName() + " has not flipped since its last execution.", 4); | ||||
| 		} | ||||
| 		else | ||||
| 			Miscellaneous.logEvent("i", "getsGreenLight()", "Rule " + getName() + " does not apply.", 4); | ||||
|  | ||||
| 		return false; | ||||
| 	} | ||||
| 	 | ||||
| 	public boolean applies(Context context) | ||||
| 	{ | ||||
| 		if(AutomationService.getInstance() == null) | ||||
| 		{ | ||||
| 			Miscellaneous.logEvent("i", "RuleCheck", "Automation service not running. Rule cannot apply.", 3); | ||||
| 			Miscellaneous.logEvent("i", "RuleCheck", "Automation service not running. Rule " + getName() + " cannot apply.", 3); | ||||
| 			return false; | ||||
| 		} | ||||
| 		 | ||||
| @@ -476,6 +486,7 @@ public class Rule implements Comparable<Rule> | ||||
| 				{ | ||||
| 					Rule.ruleRunHistory.add(0, Rule.this);		// add at beginning for better visualization | ||||
| 					Rule.lastActivatedRuleActivationTime = new Date(); | ||||
|  | ||||
| 					while(ruleRunHistory.size() > Settings.rulesThatHaveBeenRanHistorySize) | ||||
| 						ruleRunHistory.remove(ruleRunHistory.size()-1); | ||||
| 					String history = ""; | ||||
| @@ -505,15 +516,27 @@ public class Rule implements Comparable<Rule> | ||||
| 	public void activate(AutomationService automationService, boolean force) | ||||
| 	{ | ||||
| 		ActivateRuleTask task = new ActivateRuleTask(); | ||||
| 		 | ||||
| //		if(Settings.startNewThreadForRuleActivation) | ||||
| 			task.execute(automationService, force); | ||||
| //		else | ||||
| //		{ | ||||
| //			task.activateInternally(automationService, force); | ||||
| //			AutomationService.updateNotification(); | ||||
| //			ActivityMainScreen.updateMainScreen(); | ||||
| //		}		 | ||||
| 		task.execute(automationService, force); | ||||
| 	} | ||||
|  | ||||
| 	public static ArrayList<Rule> findRuleCandidates(Trigger.Trigger_Enum triggerType) | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
|  | ||||
| 		for(Rule oneRule : ruleCollection) | ||||
| 		{ | ||||
| 			innerloop: | ||||
| 			for(Trigger oneTrigger : oneRule.getTriggerSet()) | ||||
| 			{ | ||||
| 				if(oneTrigger.getTriggerType() == triggerType) | ||||
| 				{ | ||||
| 					ruleCandidates.add(oneRule); | ||||
| 					break innerloop; // we don't need to check the other triggers in the same rule | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByPoi(PointOfInterest searchPoi, boolean triggerParameter) | ||||
| @@ -557,7 +580,7 @@ public class Rule implements Comparable<Rule> | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByTimeFrame(TimeFrame searchTimeFrame, boolean triggerParameter) | ||||
| 	/*public static ArrayList<Rule> findRuleCandidatesByTimeFrame(TimeFrame searchTimeFrame, boolean triggerParameter) | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
| 		 | ||||
| @@ -578,8 +601,9 @@ public class Rule implements Comparable<Rule> | ||||
| 		} | ||||
| 		 | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByTime(Time searchTime) | ||||
| 	}*/ | ||||
|  | ||||
| 	/*public static ArrayList<Rule> findRuleCandidatesByTime(Time searchTime) | ||||
| 	{ | ||||
| 		Miscellaneous.logEvent("i", "RuleSearch", "Searching for rules with TimeFrame with time " + searchTime.toString() + ". RuleCollection-Size: " + String.valueOf(ruleCollection.size()), 3);; | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
| @@ -598,7 +622,7 @@ public class Rule implements Comparable<Rule> | ||||
| 					 | ||||
| 					if(oneTrigger.getTimeFrame().getTriggerTimeStart().getTime() > oneTrigger.getTimeFrame().getTriggerTimeStop().getTime()) | ||||
| 					{ | ||||
| 						Miscellaneous.logEvent("i", "Timeframe search", "Rule goes over midnight.", 5); | ||||
| 						Miscellaneous.logEvent("i", "Timeframe search", "Rule (" + oneRule.getName() + ") stretches over midnight.", 5); | ||||
| 						if(oneTrigger.getTimeFrame().getTriggerTimeStart().getTime() <= searchTime.getTime() || searchTime.getTime() <= oneTrigger.getTimeFrame().getTriggerTimeStop().getTime()+20000) //add 20 seconds because of delay | ||||
| 						{ | ||||
| 							ruleCandidates.add(oneRule); | ||||
| @@ -607,7 +631,7 @@ public class Rule implements Comparable<Rule> | ||||
| 					} | ||||
| 					else if(oneTrigger.getTimeFrame().getTriggerTimeStart().getTime() <= searchTime.getTime() && searchTime.getTime() <= oneTrigger.getTimeFrame().getTriggerTimeStop().getTime()+20000) //add 20 seconds because of delay | ||||
| 					{ | ||||
| 						Miscellaneous.logEvent("i", "RuleSearch", "Rule found with TimeFrame with time " + searchTime.toString(), 3); | ||||
| 						Miscellaneous.logEvent("i", "RuleSearch", "Rule found (" + oneRule.getName() + ") with TimeFrame with time " + searchTime.toString(), 3); | ||||
| 						ruleCandidates.add(oneRule); | ||||
| 						break innerloop; //if the poi is found we don't need to search the other triggers in the same rule | ||||
| 					} | ||||
| @@ -618,29 +642,9 @@ public class Rule implements Comparable<Rule> | ||||
| 		Miscellaneous.logEvent("i", "RuleSearch", String.valueOf(ruleCandidates.size()) + " Rule(s) found with TimeFrame with time " + searchTime.toString(), 3); | ||||
| 		 | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	}*/ | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByTimeFrame() | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
| 		 | ||||
| 		for(Rule oneRule : ruleCollection) | ||||
| 		{ | ||||
| 			innerloop: | ||||
| 			for(Trigger oneTrigger : oneRule.getTriggerSet()) | ||||
| 			{ | ||||
| 				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.timeFrame) | ||||
| 				{ | ||||
| 					ruleCandidates.add(oneRule); | ||||
| 					break innerloop; //if the poi is found we don't need to search the other triggers in the same rule | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByCharging(boolean triggerParameter) | ||||
| 	/*public static ArrayList<Rule> findRuleCandidatesByCharging(boolean triggerParameter) | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
| 		 | ||||
| @@ -661,9 +665,9 @@ public class Rule implements Comparable<Rule> | ||||
| 		} | ||||
| 		 | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	}*/ | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByUsbHost(boolean triggerParameter) | ||||
| 	/*public static ArrayList<Rule> findRuleCandidatesByUsbHost(boolean triggerParameter) | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
| 		 | ||||
| @@ -684,147 +688,9 @@ public class Rule implements Comparable<Rule> | ||||
| 		} | ||||
| 		 | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	}*/ | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByBatteryLevel() | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
| 		 | ||||
| 		for(Rule oneRule : ruleCollection) | ||||
| 		{ | ||||
| 			innerloop: | ||||
| 			for(Trigger oneTrigger : oneRule.getTriggerSet()) | ||||
| 			{ | ||||
| 				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.batteryLevel) | ||||
| 				{ | ||||
| //					if(oneTrigger.getTriggerParameter() == triggerParameter) | ||||
| //					{ | ||||
| 						ruleCandidates.add(oneRule); | ||||
| 						break innerloop; //if the poi is found we don't need to search the other triggers in the same rule | ||||
| //					} | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesBySpeed() | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
| 		 | ||||
| 		for(Rule oneRule : ruleCollection) | ||||
| 		{ | ||||
| 			innerloop: | ||||
| 			for(Trigger oneTrigger : oneRule.getTriggerSet()) | ||||
| 			{ | ||||
| 				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.speed) | ||||
| 				{ | ||||
| //					if(oneTrigger.getTriggerParameter() == triggerParameter) | ||||
| //					{ | ||||
| 						ruleCandidates.add(oneRule); | ||||
| 						break innerloop; //if the poi is found we don't need to search the other triggers in the same rule | ||||
| //					} | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByNoiseLevel() | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
| 		 | ||||
| 		for(Rule oneRule : ruleCollection) | ||||
| 		{ | ||||
| 			innerloop: | ||||
| 			for(Trigger oneTrigger : oneRule.getTriggerSet()) | ||||
| 			{ | ||||
| 				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.noiseLevel) | ||||
| 				{ | ||||
| //					if(oneTrigger.getTriggerParameter() == triggerParameter) | ||||
| //					{ | ||||
| 						ruleCandidates.add(oneRule); | ||||
| 						break innerloop; //if the poi is found we don't need to search the other triggers in the same rule | ||||
| //					} | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByWifiConnection() | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
| 		 | ||||
| 		for(Rule oneRule : ruleCollection) | ||||
| 		{ | ||||
| 			innerloop: | ||||
| 			for(Trigger oneTrigger : oneRule.getTriggerSet()) | ||||
| 			{ | ||||
| 				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.wifiConnection) | ||||
| 				{ | ||||
| //					if(oneTrigger.getTriggerParameter() == triggerParameter) | ||||
| //					{ | ||||
| 						ruleCandidates.add(oneRule); | ||||
| 						break innerloop; //we don't need to search the other triggers in the same rule | ||||
| //					} | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByBluetoothConnection() | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
| 		 | ||||
| 		for(Rule oneRule : ruleCollection) | ||||
| 		{ | ||||
| 			innerloop: | ||||
| 			for(Trigger oneTrigger : oneRule.getTriggerSet()) | ||||
| 			{ | ||||
| 				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.bluetoothConnection) | ||||
| 				{ | ||||
| //					if(oneTrigger.getTriggerParameter() == triggerParameter) | ||||
| //					{ | ||||
| 						ruleCandidates.add(oneRule); | ||||
| 						break innerloop; //we don't need to search the other triggers in the same rule | ||||
| //					} | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByProcess() | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
| 		 | ||||
| 		for(Rule oneRule : ruleCollection) | ||||
| 		{ | ||||
| 			innerloop: | ||||
| 			for(Trigger oneTrigger : oneRule.getTriggerSet()) | ||||
| 			{ | ||||
| 				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.process_started_stopped) | ||||
| 				{ | ||||
| //					if(oneTrigger.getTriggerParameter() == triggerParameter) | ||||
| //					{ | ||||
| 						ruleCandidates.add(oneRule); | ||||
| 						break innerloop; //we don't need to search the other triggers in the same rule | ||||
| //					} | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByAirplaneMode(boolean triggerParameter) | ||||
| 	/*public static ArrayList<Rule> findRuleCandidatesByAirplaneMode(boolean triggerParameter) | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
| 		 | ||||
| @@ -845,9 +711,9 @@ public class Rule implements Comparable<Rule> | ||||
| 		} | ||||
| 		 | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	}*/ | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByRoaming(boolean triggerParameter) | ||||
| 	/*public static ArrayList<Rule> findRuleCandidatesByRoaming(boolean triggerParameter) | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
| 		 | ||||
| @@ -868,9 +734,9 @@ public class Rule implements Comparable<Rule> | ||||
| 		} | ||||
| 		 | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	}*/ | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByPhoneCall(String direction) | ||||
| 	/*public static ArrayList<Rule> findRuleCandidatesByPhoneCall(String direction) | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
|  | ||||
| @@ -892,73 +758,7 @@ public class Rule implements Comparable<Rule> | ||||
| 		} | ||||
|  | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByNfc() | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
| 		 | ||||
| 		for(Rule oneRule : ruleCollection) | ||||
| 		{ | ||||
| 			innerloop: | ||||
| 			for(Trigger oneTrigger : oneRule.getTriggerSet()) | ||||
| 			{ | ||||
| 				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.nfcTag) | ||||
| 				{ | ||||
| //					if(oneTrigger.getTriggerParameter() == triggerParameter) | ||||
| //					{ | ||||
| 						ruleCandidates.add(oneRule); | ||||
| 						break innerloop; //we don't need to search the other triggers in the same rule | ||||
| //					} | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
|  | ||||
| 	public static ArrayList<Rule> findRuleCandidates(Trigger.Trigger_Enum triggerType) | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
|  | ||||
| 		for(Rule oneRule : ruleCollection) | ||||
| 		{ | ||||
| 			innerloop: | ||||
| 			for(Trigger oneTrigger : oneRule.getTriggerSet()) | ||||
| 			{ | ||||
| 				if(oneTrigger.getTriggerType() == triggerType) | ||||
| 				{ | ||||
| 					ruleCandidates.add(oneRule); | ||||
| 					break innerloop; //we don't need to search the other triggers in the same rule | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
|  | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByActivityDetection() | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
| 		 | ||||
| 		for(Rule oneRule : ruleCollection) | ||||
| 		{ | ||||
| 			innerloop: | ||||
| 			for(Trigger oneTrigger : oneRule.getTriggerSet()) | ||||
| 			{ | ||||
| 				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.activityDetection) | ||||
| 				{ | ||||
| //					if(oneTrigger.getTriggerParameter() == triggerParameter) | ||||
| //					{ | ||||
| 						ruleCandidates.add(oneRule); | ||||
| 						break innerloop; //we don't need to search the other triggers in the same rule | ||||
| //					} | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		 | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	}*/ | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByPoi(PointOfInterest searchPoi) | ||||
| 	{ | ||||
| @@ -983,7 +783,7 @@ public class Rule implements Comparable<Rule> | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByHeadphoneJack(boolean triggerParameter) | ||||
| 	/*public static ArrayList<Rule> findRuleCandidatesByHeadphoneJack(boolean triggerParameter) | ||||
| 	{ | ||||
| 		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>(); | ||||
| 		 | ||||
| @@ -1004,7 +804,7 @@ public class Rule implements Comparable<Rule> | ||||
| 		} | ||||
| 		 | ||||
| 		return ruleCandidates; | ||||
| 	} | ||||
| 	}*/ | ||||
| 	 | ||||
| 	public static ArrayList<Rule> findRuleCandidatesByProfile(Profile profile) | ||||
| 	{ | ||||
|   | ||||
		Reference in New Issue
	
	Block a user