ringtone
This commit is contained in:
		@@ -45,7 +45,7 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
	{
 | 
			
		||||
		this.lastExecution = lastExecution;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
	public boolean isRuleToggle()
 | 
			
		||||
	{
 | 
			
		||||
		return ruleToggle;
 | 
			
		||||
@@ -529,7 +529,7 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == triggerType)
 | 
			
		||||
				if(oneTrigger.getTriggerType().equals(triggerType))
 | 
			
		||||
				{
 | 
			
		||||
					ruleCandidates.add(oneRule);
 | 
			
		||||
					break innerloop; // we don't need to check the other triggers in the same rule
 | 
			
		||||
@@ -539,6 +539,26 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidates(Action.Action_Enum actionType)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Action oneAction : oneRule.getActionSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneAction.getAction().equals(actionType))
 | 
			
		||||
				{
 | 
			
		||||
					ruleCandidates.add(oneRule);
 | 
			
		||||
					break innerloop; // we don't need to check the other actions in the same rule
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	public static ArrayList<Rule> findRuleCandidatesByPoi(PointOfInterest searchPoi, boolean triggerParameter)
 | 
			
		||||
	{
 | 
			
		||||
@@ -581,186 +601,6 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/*public static ArrayList<Rule> findRuleCandidatesByTimeFrame(TimeFrame searchTimeFrame, boolean triggerParameter)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
		for(int i=0; i<ruleCollection.size(); i++)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(int j=0; j<ruleCollection.get(i).getTriggerSet().size(); j++)
 | 
			
		||||
			{
 | 
			
		||||
				if(ruleCollection.get(i).getTriggerSet().get(j).getTriggerType() == Trigger.Trigger_Enum.timeFrame)
 | 
			
		||||
				{
 | 
			
		||||
					if(ruleCollection.get(i).getTriggerSet().get(j).getTimeFrame().equals(searchTimeFrame) && ruleCollection.get(i).getTriggerSet().get(j).getTriggerParameter() == triggerParameter)
 | 
			
		||||
					{
 | 
			
		||||
						ruleCandidates.add(ruleCollection.get(i));
 | 
			
		||||
						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> 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>();
 | 
			
		||||
		
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.timeFrame)
 | 
			
		||||
				{
 | 
			
		||||
					Miscellaneous.logEvent("i", "RuleSearch", "Searching interval: " + oneTrigger.getTimeFrame().getTriggerTimeStart().toString() + " to " + oneTrigger.getTimeFrame().getTriggerTimeStop().toString(), 5);
 | 
			
		||||
					Miscellaneous.logEvent("i", "RuleSearch", "interval start: " + String.valueOf(oneTrigger.getTimeFrame().getTriggerTimeStart().getTime()), 5);
 | 
			
		||||
					Miscellaneous.logEvent("i", "RuleSearch", "search time: " + String.valueOf(searchTime.getTime()), 5);
 | 
			
		||||
					Miscellaneous.logEvent("i", "RuleSearch", "interval stop: " + String.valueOf(oneTrigger.getTimeFrame().getTriggerTimeStop().getTime()), 5);
 | 
			
		||||
					
 | 
			
		||||
					if(oneTrigger.getTimeFrame().getTriggerTimeStart().getTime() > oneTrigger.getTimeFrame().getTriggerTimeStop().getTime())
 | 
			
		||||
					{
 | 
			
		||||
						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);
 | 
			
		||||
							break innerloop; //if the poi is found we don't need to search the other triggers in the same 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 (" + 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
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		Miscellaneous.logEvent("i", "RuleSearch", String.valueOf(ruleCandidates.size()) + " Rule(s) found with TimeFrame with time " + searchTime.toString(), 3);
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}*/
 | 
			
		||||
	
 | 
			
		||||
	/*public static ArrayList<Rule> findRuleCandidatesByCharging(boolean triggerParameter)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.charging)
 | 
			
		||||
				{
 | 
			
		||||
					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> findRuleCandidatesByUsbHost(boolean triggerParameter)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.usb_host_connection)
 | 
			
		||||
				{
 | 
			
		||||
					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> findRuleCandidatesByAirplaneMode(boolean triggerParameter)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.airplaneMode)
 | 
			
		||||
				{
 | 
			
		||||
					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> findRuleCandidatesByRoaming(boolean triggerParameter)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.roaming)
 | 
			
		||||
				{
 | 
			
		||||
					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> findRuleCandidatesByPhoneCall(String direction)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.phoneCall)
 | 
			
		||||
				{
 | 
			
		||||
					String[] elements = oneTrigger.getTriggerParameter2().split(triggerParameter2Split);
 | 
			
		||||
					if(elements[1].equals(Trigger.triggerPhoneCallDirectionAny) || elements[1].equals(direction))
 | 
			
		||||
					{
 | 
			
		||||
						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)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
@@ -783,29 +623,6 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
		
 | 
			
		||||
		return ruleCandidates;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/*public static ArrayList<Rule> findRuleCandidatesByHeadphoneJack(boolean triggerParameter)
 | 
			
		||||
	{
 | 
			
		||||
		ArrayList<Rule> ruleCandidates = new ArrayList<Rule>();
 | 
			
		||||
		
 | 
			
		||||
		for(Rule oneRule : ruleCollection)
 | 
			
		||||
		{
 | 
			
		||||
			innerloop:
 | 
			
		||||
			for(Trigger oneTrigger : oneRule.getTriggerSet())
 | 
			
		||||
			{
 | 
			
		||||
				if(oneTrigger.getTriggerType() == Trigger.Trigger_Enum.headsetPlugged)
 | 
			
		||||
				{
 | 
			
		||||
					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> findRuleCandidatesByTriggerProfile(Profile profile)
 | 
			
		||||
	{
 | 
			
		||||
@@ -904,4 +721,15 @@ public class Rule implements Comparable<Rule>
 | 
			
		||||
	{
 | 
			
		||||
		return ActivityPermissions.havePermissionsForRule(this, Miscellaneous.getAnyContext());
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public static Rule getByName(String ruleName)
 | 
			
		||||
	{
 | 
			
		||||
		for(Rule r : Rule.getRuleCollection())
 | 
			
		||||
		{
 | 
			
		||||
			if(r.getName().equals(ruleName))
 | 
			
		||||
				return r;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return null;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user