Statistics: used when only the data is needed (instead of passing SegmentStatisticUpdater).

This commit is contained in:
Dennis Guse
2025-10-27 19:26:22 +01:00
parent 920ad5129a
commit e3460d94ed
21 changed files with 197 additions and 150 deletions
@@ -39,7 +39,7 @@ import de.dennisguse.opentracks.databinding.StatisticsRecordedBinding;
import de.dennisguse.opentracks.settings.PreferencesUtils;
import de.dennisguse.opentracks.settings.UnitSystem;
import de.dennisguse.opentracks.stats.SensorStatistics;
import de.dennisguse.opentracks.stats.SegmentStatisticUpdater;
import de.dennisguse.opentracks.stats.Statistics;
import de.dennisguse.opentracks.util.StringUtils;
/**
@@ -171,12 +171,12 @@ public class StatisticsRecordedFragment extends Fragment {
}
private void updateUI() {
SegmentStatisticUpdater trackStatistics = track.getTrackStatistics();
Statistics trackStatistics = track.getStatistics();
// Set total distance
{
Pair<String, String> parts = DistanceFormatter.Builder()
.setUnit(unitSystem)
.build(getContext()).getDistanceParts(trackStatistics.getTotalDistance());
.build(getContext()).getDistanceParts(trackStatistics.totalDistance());
viewBinding.statsDistanceValue.setText(parts.first);
viewBinding.statsDistanceUnit.setText(parts.second);
@@ -187,8 +187,8 @@ public class StatisticsRecordedFragment extends Fragment {
// Set time and start datetime
{
viewBinding.statsMovingTimeValue.setText(StringUtils.formatElapsedTime(trackStatistics.getMovingTime()));
viewBinding.statsTotalTimeValue.setText(StringUtils.formatElapsedTime(trackStatistics.getTotalTime()));
viewBinding.statsMovingTimeValue.setText(StringUtils.formatElapsedTime(trackStatistics.movingTime()));
viewBinding.statsTotalTimeValue.setText(StringUtils.formatElapsedTime(trackStatistics.totalTime()));
}
SpeedFormatter formatter = SpeedFormatter.Builder().setUnit(unitSystem).setReportSpeedOrPace(preferenceReportSpeed).build(getContext());
@@ -205,7 +205,7 @@ public class StatisticsRecordedFragment extends Fragment {
{
viewBinding.statsMaxSpeedLabel.setText(preferenceReportSpeed ? R.string.stats_max_speed : R.string.stats_fastest_pace);
Pair<String, String> parts = formatter.getSpeedParts(trackStatistics.getMaxSpeed());
Pair<String, String> parts = formatter.getSpeedParts(trackStatistics.maxSpeed());
viewBinding.statsMaxSpeedValue.setText(parts.first);
viewBinding.statsMaxSpeedUnit.setText(parts.second);
}
@@ -221,8 +221,8 @@ public class StatisticsRecordedFragment extends Fragment {
// Set altitude gain and loss
{
Float altitudeGain_m = trackStatistics.getTotalAltitudeGain();
Float altitudeLoss_m = trackStatistics.getTotalAltitudeLoss();
Float altitudeGain_m = trackStatistics.altitudeGainLoss() != null ? trackStatistics.altitudeGainLoss().gain_m() : null;
Float altitudeLoss_m = trackStatistics.altitudeGainLoss() != null ? trackStatistics.altitudeGainLoss().loss_m() : null;
Pair<String, String> parts;