aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/database/NotificationManager.java
diff options
context:
space:
mode:
authorAbyss777 <abyss@fox5.ru>2016-06-14 18:05:05 +0500
committerAbyss777 <abyss@fox5.ru>2016-06-14 18:05:05 +0500
commitb588b3c723cad4629dcecbce8983933f7ff2a255 (patch)
treeee1ed23c7c02ded8ca92c904e6f4f21aacfda8d8 /src/org/traccar/database/NotificationManager.java
parent185c0830e17b6969977026d4be27e34878bb3db9 (diff)
downloadtrackermap-server-b588b3c723cad4629dcecbce8983933f7ff2a255.tar.gz
trackermap-server-b588b3c723cad4629dcecbce8983933f7ff2a255.tar.bz2
trackermap-server-b588b3c723cad4629dcecbce8983933f7ff2a255.zip
- Overlapping geofences
- Simplified user-device link
Diffstat (limited to 'src/org/traccar/database/NotificationManager.java')
-rw-r--r--src/org/traccar/database/NotificationManager.java42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/org/traccar/database/NotificationManager.java b/src/org/traccar/database/NotificationManager.java
new file mode 100644
index 000000000..8c8e958c8
--- /dev/null
+++ b/src/org/traccar/database/NotificationManager.java
@@ -0,0 +1,42 @@
+package org.traccar.database;
+
+import java.sql.SQLException;
+import java.util.Collection;
+import java.util.Set;
+
+import org.traccar.Context;
+import org.traccar.helper.Log;
+import org.traccar.model.Event;
+import org.traccar.model.Position;
+
+public class NotificationManager {
+
+ private final DataManager dataManager;
+
+ public NotificationManager(DataManager dataManager) {
+ this.dataManager = dataManager;
+ }
+
+ public void updateEvent(Event event, Position position) {
+ try {
+ dataManager.addEvent(event);
+ } catch (SQLException error) {
+ Log.warning(error);
+ }
+
+ Set<Long> users = Context.getPermissionsManager().getDeviceUsers(event.getDeviceId());
+ for (Long userId : users) {
+ if (event.getGeofenceId() == 0
+ || Context.getGeofenceManager().checkGeofence(userId, event.getGeofenceId())) {
+ Context.getConnectionManager().updateEvent(userId, event, position);
+ }
+ }
+ }
+
+ public void updateEvents(Collection<Event> events, Position position) {
+
+ for (Event event : events) {
+ updateEvent(event, position);
+ }
+ }
+}