diff --git a/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java b/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java index 34e3c34c2..c6eb233de 100644 --- a/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java +++ b/src/main/java/de/dennisguse/opentracks/viewmodels/IntervalStatistics.java @@ -1,5 +1,7 @@ package de.dennisguse.opentracks.viewmodels; +import android.util.Log; + import java.util.ArrayList; import java.util.List; @@ -31,8 +33,18 @@ public class IntervalStatistics { interval.time += trackPoint.getTime() - prevTrackPoint.getTime(); if (interval.distance >= distanceInterval) { - intervalList.add(interval); - interval = new Interval(); + float adjustFactor = distanceInterval / interval.distance; + Interval adjustedInterval = new Interval(interval); + adjustedInterval.distance *= adjustFactor; + adjustedInterval.time *= adjustFactor; + + intervalList.add(adjustedInterval); + + Interval newInterval = new Interval(); + newInterval.distance = interval.distance - adjustedInterval.distance; + newInterval.time = interval.time - adjustedInterval.time; + + interval = newInterval; } } } @@ -54,6 +66,13 @@ public class IntervalStatistics { return distance; } + public Interval() {} + + public Interval(Interval i) { + distance = i.distance; + time = i.time; + } + /** * @return speed of the interval in m/s. */