forked from jens/Automation
operator change
This commit is contained in:
parent
e39a2411ba
commit
51caae0794
@ -253,7 +253,7 @@ public class Trigger
|
|||||||
it contains the specific event of this trigger.
|
it contains the specific event of this trigger.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
return triggerParameter == BroadcastListener.getInstance().broadcastsCollectionContains(triggerParameter2);
|
return triggerParameter == BroadcastListener.getInstance().hasBroadcastOccurredSince(triggerParameter2, getParentRule().getLastExecution());
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean checkNotification()
|
boolean checkNotification()
|
||||||
|
@ -12,11 +12,12 @@ import com.jens.automation2.Rule;
|
|||||||
import com.jens.automation2.Trigger;
|
import com.jens.automation2.Trigger;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Calendar;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
public class BroadcastListener extends android.content.BroadcastReceiver implements AutomationListenerInterface
|
public class BroadcastListener extends android.content.BroadcastReceiver implements AutomationListenerInterface
|
||||||
{
|
{
|
||||||
ArrayList<String> broadcastsCollection = new ArrayList<>();
|
ArrayList<EventOccurrence> broadcastsCollection = new ArrayList<>();
|
||||||
public static AutomationService automationServiceRef = null;
|
public static AutomationService automationServiceRef = null;
|
||||||
private static boolean broadcastReceiverActive = false;
|
private static boolean broadcastReceiverActive = false;
|
||||||
private static BroadcastListener broadcastReceiverInstance = null;
|
private static BroadcastListener broadcastReceiverInstance = null;
|
||||||
@ -31,10 +32,22 @@ public class BroadcastListener extends android.content.BroadcastReceiver impleme
|
|||||||
return broadcastReceiverInstance;
|
return broadcastReceiverInstance;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static class EventOccurrence
|
||||||
|
{
|
||||||
|
Calendar time;
|
||||||
|
String event;
|
||||||
|
|
||||||
|
public EventOccurrence(Calendar time, String event)
|
||||||
|
{
|
||||||
|
this.time = time;
|
||||||
|
this.event = event;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent)
|
public void onReceive(Context context, Intent intent)
|
||||||
{
|
{
|
||||||
broadcastsCollection.add(intent.getAction());
|
broadcastsCollection.add(new EventOccurrence(Calendar.getInstance(), intent.getAction()));
|
||||||
|
|
||||||
ArrayList<Rule> ruleCandidates = Rule.findRuleCandidates(Trigger.Trigger_Enum.broadcastReceived);
|
ArrayList<Rule> ruleCandidates = Rule.findRuleCandidates(Trigger.Trigger_Enum.broadcastReceived);
|
||||||
for(int i=0; i<ruleCandidates.size(); i++)
|
for(int i=0; i<ruleCandidates.size(); i++)
|
||||||
@ -44,14 +57,20 @@ public class BroadcastListener extends android.content.BroadcastReceiver impleme
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<String> getBroadcastsCollection()
|
public ArrayList<EventOccurrence> getBroadcastsCollection()
|
||||||
{
|
{
|
||||||
return broadcastsCollection;
|
return broadcastsCollection;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean broadcastsCollectionContains(String event)
|
public boolean hasBroadcastOccurredSince(String event, Calendar timeLimit)
|
||||||
{
|
{
|
||||||
return broadcastsCollection.contains(event);
|
for(EventOccurrence eo : broadcastsCollection)
|
||||||
|
{
|
||||||
|
if(eo.time.getTimeInMillis() > timeLimit.getTimeInMillis() && eo.event.equalsIgnoreCase(event))
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user