Fix reload of tracks when start/end of tracking changes

This commit is contained in:
Jan Broß committed 2016-03-30 16:50:28 +02:00
1 parent cd203a6895
commit 853578e74a
1 file changed
+29 -11
@@ -755,6 +755,9 @@ public abstract class TrackedRaceImpl extends TrackedRaceWithWindEssentials impl
final Pair<TimePoint, TimePoint> trackingTimesFromRaceLog = this.getTrackingTimesFromRaceLogs();
final Pair<TimePoint, TimePoint> 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);
}
}
/**