From 853578e74a3055f0b390ee963426f1e91682149e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Bro=C3=9F?= Date: Wed, 30 Mar 2016 16:50:28 +0200 Subject: [PATCH] Fix reload of tracks when start/end of tracking changes --- .../domain/tracking/impl/TrackedRaceImpl.java | 40 ++++++++++++++----- 1 file changed, 29 insertions(+), 11 deletions(-) diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java index af17a3b8d25..d8f1d98bb15 100644 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/tracking/impl/TrackedRaceImpl.java @@ -755,6 +755,9 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl final Pair trackingTimesFromRaceLog = this.getTrackingTimesFromRaceLogs(); final Pair startAndFinishedTimesFromRaceLog = this.getStartAndFinishedTimeFromRaceLogs(); + TimePoint oldStartOfTracking = getStartOfTracking(); + TimePoint oldEndOfTracking = getEndOfTracking(); + boolean startOfTrackingFound = false; boolean endOfTrackingFound = false; @@ -825,6 +828,9 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl endOfTracking = latestMappingEnd; } } + + startOfTrackingChanged(oldStartOfTracking, false); + endOfTrackingChanged(oldEndOfTracking, false); } private TimePoint getUpdatedEarliestMappingStart(TimePoint earliestMappingStart, final TimePoint from) { @@ -1976,14 +1982,19 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl } protected void setStartOfTrackingReceived(final TimePoint startOfTracking, final boolean waitForGPSFixesToLoad) { - final TimePoint oldStartOfTracking = this.startOfTrackingReceived; + final TimePoint oldStartOfTracking = getStartOfTracking(); this.startOfTrackingReceived = startOfTracking; - if (!Util.equalsWithNull(oldStartOfTracking, startOfTracking) && - (startOfTracking == null || (oldStartOfTracking != null && startOfTracking.before(oldStartOfTracking)))) { - logger.info("Loading fixes after start of tracking for "+getRace()+" has been extended from "+oldStartOfTracking+" to "+startOfTracking); - loadGPSFixesForExtendedTimeRange(startOfTracking, oldStartOfTracking, waitForGPSFixesToLoad); - } updateStartAndEndOfTracking(); + startOfTrackingChanged(oldStartOfTracking, waitForGPSFixesToLoad); + } + + private void startOfTrackingChanged(final TimePoint oldStartOfTracking, boolean waitForGPSFixesToLoad){ + TimePoint inferedStartOfTracking = getStartOfTracking(); + if (!Util.equalsWithNull(oldStartOfTracking, inferedStartOfTracking) && + (inferedStartOfTracking == null || (oldStartOfTracking != null && inferedStartOfTracking.before(oldStartOfTracking)))) { + logger.info("Loading fixes after start of tracking for "+getRace()+" has been extended from "+oldStartOfTracking+" to "+inferedStartOfTracking); + loadGPSFixesForExtendedTimeRange(inferedStartOfTracking, oldStartOfTracking, waitForGPSFixesToLoad); + } } private void loadGPSFixesForExtendedTimeRange(final TimePoint start, final TimePoint end, final boolean waitForGPSFixesToLoad) { @@ -1996,12 +2007,19 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl protected void setEndOfTrackingReceived(final TimePoint endOfTracking, final boolean waitForGPSFixesToLoad) { final TimePoint oldEndOfTracking = this.endOfTrackingReceived; this.endOfTrackingReceived = endOfTracking; - if (!Util.equalsWithNull(oldEndOfTracking, endOfTracking) && - (endOfTracking == null || (oldEndOfTracking != null && endOfTracking.after(oldEndOfTracking)))) { - logger.info("Loading fixes after end of tracking for "+getRace()+" has been extended from "+oldEndOfTracking+" to "+endOfTracking); - loadGPSFixesForExtendedTimeRange(oldEndOfTracking, endOfTracking, waitForGPSFixesToLoad); - } updateStartAndEndOfTracking(); + endOfTrackingChanged(oldEndOfTracking, waitForGPSFixesToLoad); + } + + private void endOfTrackingChanged(final TimePoint oldEndOfTracking, boolean waitForGPSFixesToLoad){ + TimePoint inferedEndOfTracking = getEndOfTracking(); + + if (!Util.equalsWithNull(oldEndOfTracking, inferedEndOfTracking) && + (inferedEndOfTracking == null || (oldEndOfTracking != null && inferedEndOfTracking.after(oldEndOfTracking)))) { + logger.info("Loading fixes after end of tracking for "+getRace()+" has been extended from "+oldEndOfTracking+" to "+inferedEndOfTracking); + loadGPSFixesForExtendedTimeRange(oldEndOfTracking, inferedEndOfTracking, waitForGPSFixesToLoad); + } + } /**