aboutsummaryrefslogtreecommitdiff
path: root/src/org/traccar/database/NotificationManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/org/traccar/database/NotificationManager.java')
-rw-r--r--src/org/traccar/database/NotificationManager.java11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/org/traccar/database/NotificationManager.java b/src/org/traccar/database/NotificationManager.java
index 0987f255b..8eea287de 100644
--- a/src/org/traccar/database/NotificationManager.java
+++ b/src/org/traccar/database/NotificationManager.java
@@ -48,8 +48,13 @@ public class NotificationManager {
}
public void updateEvent(Event event, Position position) {
+ Position relatedPosition = position;
try {
dataManager.addObject(event);
+ if (event.getPositionId() != 0 && (relatedPosition == null
+ || event.getPositionId() != relatedPosition.getId())) {
+ relatedPosition = dataManager.getObject(Position.class, event.getPositionId());
+ }
} catch (SQLException error) {
Log.warning(error);
}
@@ -64,16 +69,16 @@ public class NotificationManager {
Context.getConnectionManager().updateEvent(userId, event);
}
if (notification.getMail()) {
- NotificationMail.sendMailAsync(userId, event, position);
+ NotificationMail.sendMailAsync(userId, event, relatedPosition);
}
if (notification.getSms()) {
- NotificationSms.sendSmsAsync(userId, event, position);
+ NotificationSms.sendSmsAsync(userId, event, relatedPosition);
}
}
}
}
if (Context.getEventForwarder() != null) {
- Context.getEventForwarder().forwardEvent(event, position);
+ Context.getEventForwarder().forwardEvent(event, relatedPosition);
}
}