forked from upstream-mirrors/OpenTracks
IntervalStatisticsUpdater now uses Statistics.
This commit is contained in:
@@ -361,10 +361,6 @@ public class SegmentStatisticUpdater {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasTotalAltitudeGain() {
|
|
||||||
return totalAltitudeGain_m != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public Float getTotalAltitudeGain() {
|
public Float getTotalAltitudeGain() {
|
||||||
return totalAltitudeGain_m;
|
return totalAltitudeGain_m;
|
||||||
|
|||||||
@@ -79,6 +79,7 @@ public class TrackStatisticsUpdater {
|
|||||||
}
|
}
|
||||||
|
|
||||||
//TODO Return Statistic?
|
//TODO Return Statistic?
|
||||||
|
@Deprecated
|
||||||
public SegmentStatisticUpdater getTrackStatistics() {
|
public SegmentStatisticUpdater getTrackStatistics() {
|
||||||
// Take a snapshot - we don't want anyone messing with our trackStatistics
|
// Take a snapshot - we don't want anyone messing with our trackStatistics
|
||||||
SegmentStatisticUpdater stats = new SegmentStatisticUpdater(segmentStatisticUpdater);
|
SegmentStatisticUpdater stats = new SegmentStatisticUpdater(segmentStatisticUpdater);
|
||||||
@@ -86,6 +87,10 @@ public class TrackStatisticsUpdater {
|
|||||||
return stats;
|
return stats;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Statistics getStatistics() {
|
||||||
|
return getTrackStatistics().getStatistics();
|
||||||
|
}
|
||||||
|
|
||||||
public Statistics getCurrentSegment() {
|
public Statistics getCurrentSegment() {
|
||||||
return currentSegment.getStatistics();
|
return currentSegment.getStatistics();
|
||||||
}
|
}
|
||||||
|
|||||||
+24
-19
@@ -11,8 +11,8 @@ import de.dennisguse.opentracks.data.models.Distance;
|
|||||||
import de.dennisguse.opentracks.data.models.HeartRate;
|
import de.dennisguse.opentracks.data.models.HeartRate;
|
||||||
import de.dennisguse.opentracks.data.models.Power;
|
import de.dennisguse.opentracks.data.models.Power;
|
||||||
import de.dennisguse.opentracks.data.models.Speed;
|
import de.dennisguse.opentracks.data.models.Speed;
|
||||||
|
import de.dennisguse.opentracks.data.models.Statistics;
|
||||||
import de.dennisguse.opentracks.data.models.TrackPoint;
|
import de.dennisguse.opentracks.data.models.TrackPoint;
|
||||||
import de.dennisguse.opentracks.stats.SegmentStatisticUpdater;
|
|
||||||
import de.dennisguse.opentracks.stats.TrackStatisticsUpdater;
|
import de.dennisguse.opentracks.stats.TrackStatisticsUpdater;
|
||||||
|
|
||||||
public class IntervalStatisticsUpdater {
|
public class IntervalStatisticsUpdater {
|
||||||
@@ -46,8 +46,8 @@ public class IntervalStatisticsUpdater {
|
|||||||
trackPoint = trackPointIterator.next();
|
trackPoint = trackPointIterator.next();
|
||||||
trackStatisticsUpdater.addTrackPoint(trackPoint);
|
trackStatisticsUpdater.addTrackPoint(trackPoint);
|
||||||
|
|
||||||
if (trackStatisticsUpdater.getTrackStatistics().getTotalDistance().plus(interval.distance).greaterOrEqualThan(distanceInterval)) {
|
if (trackStatisticsUpdater.getStatistics().totalDistance().plus(interval.distance).greaterOrEqualThan(distanceInterval)) {
|
||||||
interval.add(trackStatisticsUpdater.getTrackStatistics(), trackPoint);
|
interval.add(trackStatisticsUpdater.getStatistics(), trackPoint);
|
||||||
|
|
||||||
double adjustFactor = distanceInterval.dividedBy(interval.distance);
|
double adjustFactor = distanceInterval.dividedBy(interval.distance);
|
||||||
Interval adjustedInterval = new Interval(interval, adjustFactor);
|
Interval adjustedInterval = new Interval(interval, adjustFactor);
|
||||||
@@ -66,9 +66,9 @@ public class IntervalStatisticsUpdater {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (newIntervalAdded) {
|
if (newIntervalAdded) {
|
||||||
lastInterval.add(trackStatisticsUpdater.getTrackStatistics(), null);
|
lastInterval.add(trackStatisticsUpdater.getStatistics(), null);
|
||||||
} else {
|
} else {
|
||||||
lastInterval.set(trackStatisticsUpdater.getTrackStatistics());
|
lastInterval.set(trackStatisticsUpdater.getStatistics());
|
||||||
}
|
}
|
||||||
|
|
||||||
return trackPoint != null ? trackPoint.getId() : null;
|
return trackPoint != null ? trackPoint.getId() : null;
|
||||||
@@ -98,6 +98,7 @@ public class IntervalStatisticsUpdater {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//TODO Could be replaced with Statistics?
|
||||||
public static class Interval {
|
public static class Interval {
|
||||||
private Distance distance = Distance.of(0);
|
private Distance distance = Distance.of(0);
|
||||||
private Duration time = Duration.ofSeconds(0);
|
private Duration time = Duration.ofSeconds(0);
|
||||||
@@ -172,13 +173,15 @@ public class IntervalStatisticsUpdater {
|
|||||||
return avgPower;
|
return avgPower;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void add(SegmentStatisticUpdater trackStatistics, @Nullable TrackPoint lastTrackPoint) {
|
private void add(Statistics trackStatistics, @Nullable TrackPoint lastTrackPoint) {
|
||||||
distance = distance.plus(trackStatistics.getTotalDistance());
|
distance = distance.plus(trackStatistics.totalDistance());
|
||||||
time = time.plus(trackStatistics.getTotalTime());
|
time = time.plus(trackStatistics.totalTime());
|
||||||
gain_m = trackStatistics.hasTotalAltitudeGain() ? trackStatistics.getTotalAltitudeGain() : gain_m;
|
if (trackStatistics.altitudeGainLoss() != null) {
|
||||||
loss_m = trackStatistics.hasTotalAltitudeLoss() ? trackStatistics.getTotalAltitudeLoss() : loss_m;
|
gain_m = trackStatistics.altitudeGainLoss().gain_m();
|
||||||
avgHeartRate = trackStatistics.getAverageHeartRate();
|
loss_m = trackStatistics.altitudeGainLoss().loss_m();
|
||||||
avgPower = trackStatistics.getAveragePower();
|
}
|
||||||
|
avgHeartRate = trackStatistics.avgHeartRate();
|
||||||
|
avgPower = trackStatistics.avgPower();
|
||||||
if (lastTrackPoint == null) {
|
if (lastTrackPoint == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -190,13 +193,15 @@ public class IntervalStatisticsUpdater {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void set(SegmentStatisticUpdater trackStatistics) {
|
private void set(Statistics trackStatistics) {
|
||||||
distance = trackStatistics.getTotalDistance();
|
distance = trackStatistics.totalDistance();
|
||||||
time = trackStatistics.getTotalTime();
|
time = trackStatistics.totalTime();
|
||||||
gain_m = trackStatistics.hasTotalAltitudeGain() ? trackStatistics.getTotalAltitudeGain() : gain_m;
|
if (trackStatistics.altitudeGainLoss() != null) {
|
||||||
loss_m = trackStatistics.hasTotalAltitudeLoss() ? trackStatistics.getTotalAltitudeLoss() : loss_m;
|
gain_m = trackStatistics.altitudeGainLoss().gain_m();
|
||||||
avgHeartRate = trackStatistics.getAverageHeartRate();
|
loss_m = trackStatistics.altitudeGainLoss().loss_m();
|
||||||
avgPower = trackStatistics.getAveragePower();
|
}
|
||||||
|
avgHeartRate = trackStatistics.avgHeartRate();
|
||||||
|
avgPower = trackStatistics.avgPower();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user