aboutsummaryrefslogtreecommitdiff
path: root/src/org
diff options
context:
space:
mode:
Diffstat (limited to 'src/org')
-rw-r--r--src/org/traccar/Main.java2
-rw-r--r--src/org/traccar/database/DataManager.java10
-rw-r--r--src/org/traccar/protocol/MiniFinderProtocolDecoder.java5
3 files changed, 12 insertions, 5 deletions
diff --git a/src/org/traccar/Main.java b/src/org/traccar/Main.java
index 21625d3c1..1e2db2693 100644
--- a/src/org/traccar/Main.java
+++ b/src/org/traccar/Main.java
@@ -44,7 +44,7 @@ public final class Main {
@Override
public void run() {
try {
- Context.getDataManager().clearPositionsHistory();
+ Context.getDataManager().clearHistory();
} catch (SQLException error) {
Log.warning(error);
}
diff --git a/src/org/traccar/database/DataManager.java b/src/org/traccar/database/DataManager.java
index 0c5f458a2..2f2cf1275 100644
--- a/src/org/traccar/database/DataManager.java
+++ b/src/org/traccar/database/DataManager.java
@@ -308,11 +308,15 @@ public class DataManager {
.executeQuery(Position.class);
}
- public void clearPositionsHistory() throws SQLException {
- long historyDays = config.getInteger("database.positionsHistoryDays");
+ public void clearHistory() throws SQLException {
+ long historyDays = config.getInteger("database.historyDays");
if (historyDays != 0) {
+ Date timeLimit = new Date(System.currentTimeMillis() - historyDays * 24 * 3600 * 1000);
QueryBuilder.create(dataSource, getQuery("database.deletePositions"))
- .setDate("serverTime", new Date(System.currentTimeMillis() - historyDays * 24 * 3600 * 1000))
+ .setDate("serverTime", timeLimit)
+ .executeUpdate();
+ QueryBuilder.create(dataSource, getQuery("database.deleteEvents"))
+ .setDate("serverTime", timeLimit)
.executeUpdate();
}
}
diff --git a/src/org/traccar/protocol/MiniFinderProtocolDecoder.java b/src/org/traccar/protocol/MiniFinderProtocolDecoder.java
index c3279da43..8bfb4fb36 100644
--- a/src/org/traccar/protocol/MiniFinderProtocolDecoder.java
+++ b/src/org/traccar/protocol/MiniFinderProtocolDecoder.java
@@ -79,7 +79,10 @@ public class MiniFinderProtocolDecoder extends BaseProtocolDecoder {
private void decodeFlags(Position position, int flags) {
- position.setValid(BitUtil.check(flags, 0));
+ position.setValid(BitUtil.to(flags, 2) > 0);
+ if (BitUtil.check(flags, 1)) {
+ position.set(Position.KEY_APPROXIMATE, true);
+ }
if (BitUtil.check(flags, 2)) {
position.set(Position.KEY_ALARM, Position.ALARM_FAULT);