From 56d51ceaa988c253c97bb30805cb043649029747 Mon Sep 17 00:00:00 2001 From: Joseph Date: Tue, 18 Apr 2017 09:07:02 +1200 Subject: [PATCH] Track point is now removed after its expiry and fades after the boat has stopped Story [758] --- src/main/java/seng302/Model/BoatInRace.java | 8 ++++++-- src/main/java/seng302/Model/TrackPoint.java | 9 ++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/seng302/Model/BoatInRace.java b/src/main/java/seng302/Model/BoatInRace.java index 9317ae70..4d86b201 100644 --- a/src/main/java/seng302/Model/BoatInRace.java +++ b/src/main/java/seng302/Model/BoatInRace.java @@ -260,9 +260,13 @@ public class BoatInRace extends Boat { public boolean addTrackPoint(GPSCoordinate coordinate) { Boolean added = System.currentTimeMillis() >= nextValidTime; + long currentTime = System.currentTimeMillis(); if (added && this.started) { - nextValidTime = System.currentTimeMillis() + TRACK_POINT_TIME_INTERVAL; - track.add(new TrackPoint(coordinate, System.currentTimeMillis(), TRACK_POINT_LIMIT*TRACK_POINT_TIME_INTERVAL)); + nextValidTime = currentTime + TRACK_POINT_TIME_INTERVAL; + track.add(new TrackPoint(coordinate, currentTime, TRACK_POINT_LIMIT * TRACK_POINT_TIME_INTERVAL)); + } + if (track.size() > 0 && track.element().getTimeAdded() + TRACK_POINT_LIMIT * TRACK_POINT_TIME_INTERVAL <= currentTime) { + track.remove(); } return added; } diff --git a/src/main/java/seng302/Model/TrackPoint.java b/src/main/java/seng302/Model/TrackPoint.java index 27ee25e2..fe898417 100644 --- a/src/main/java/seng302/Model/TrackPoint.java +++ b/src/main/java/seng302/Model/TrackPoint.java @@ -23,6 +23,13 @@ public class TrackPoint { } public double getAlpha() { - return Double.max(minAlpha,1.0 - (double)(System.currentTimeMillis() - timeAdded)/expiry); + if (System.currentTimeMillis() >= timeAdded + expiry) { + return 0; + } + return Double.max(minAlpha,1.0 - (double)(System.currentTimeMillis() - timeAdded) / expiry); + } + + public long getTimeAdded() { + return timeAdded; } }