Cleanup: move Statistics to package models.

This commit is contained in:
Dennis Guse
2025-10-27 22:19:10 +01:00
parent e3460d94ed
commit 5dd56892fb
15 changed files with 14 additions and 19 deletions
@@ -48,6 +48,7 @@ import de.dennisguse.opentracks.data.models.Marker;
import de.dennisguse.opentracks.data.models.Position;
import de.dennisguse.opentracks.data.models.Power;
import de.dennisguse.opentracks.data.models.Speed;
import de.dennisguse.opentracks.data.models.Statistics;
import de.dennisguse.opentracks.data.models.Track;
import de.dennisguse.opentracks.data.models.TrackPoint;
import de.dennisguse.opentracks.data.tables.MarkerColumns;
@@ -55,7 +56,6 @@ import de.dennisguse.opentracks.data.tables.TrackPointsColumns;
import de.dennisguse.opentracks.data.tables.TracksColumns;
import de.dennisguse.opentracks.stats.SegmentStatisticUpdater;
import de.dennisguse.opentracks.stats.SensorStatistics;
import de.dennisguse.opentracks.stats.Statistics;
import de.dennisguse.opentracks.ui.markers.MarkerUtils;
import de.dennisguse.opentracks.util.FileUtils;
@@ -0,0 +1,62 @@
package de.dennisguse.opentracks.data.models;
import androidx.annotation.Nullable;
import java.time.Duration;
import java.time.Instant;
public record Statistics(
Instant startTime,
Instant stopTime,
//TODO Rename to totalDuration
Duration totalTime,
//TODO Rename to movingDuration
Duration movingTime, // Based on when we believe the user is traveling
Distance totalDistance,
boolean isIdle, //TODO Check if this is persisted; if not: remove
Speed maxSpeed,
//TODO Create record for min/max altitude
@Nullable
Double altitudeMin_m,
@Nullable
Double altitudeMax_m,
@Nullable
AltitudeGainLoss altitudeGainLoss,
@Nullable
HeartRate avgHeartRate,
@Nullable
Power avgPower
) {
public Duration getStoppedTime() {
return totalTime.minus(movingTime);
}
public Speed getAverageSpeed() {
if (totalTime.isZero()) {
return Speed.of(0);
}
return Speed.of(totalDistance, totalTime);
}
public Speed getAverageMovingSpeed() {
return Speed.of(totalDistance, movingTime);
}
@Deprecated
//TODO null should be return (need adjusting ContentPtoviderUtils.createContentValues()
public double getMinAltitude() {
if (altitudeMin_m == null) return 0;
return altitudeMin_m;
}
@Deprecated
//TODO null should be return (need adjusting ContentPtoviderUtils.createContentValues()
public double getMaxAltitude() {
if (altitudeMax_m == null) return 0;
return altitudeMax_m;
}
}
@@ -30,7 +30,6 @@ import java.util.Objects;
import java.util.UUID;
import de.dennisguse.opentracks.stats.SegmentStatisticUpdater;
import de.dennisguse.opentracks.stats.Statistics;
/**
* A track.