forked from upstream-mirrors/OpenTracks
Track is now a record.
This commit is contained in:
@@ -1,14 +1,12 @@
|
||||
package de.dennisguse.opentracks.services;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
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.sensors.sensorData.SensorDataSet;
|
||||
|
||||
/**
|
||||
* {@link Track} and {@link TrackPoint} must be immutable (i.e., their content does not change).
|
||||
* {@link TrackPoint} must be immutable (i.e., their content does not change).
|
||||
*/
|
||||
public record RecordingData(
|
||||
Track track,
|
||||
@@ -19,6 +17,6 @@ public record RecordingData(
|
||||
public static final RecordingData NOT_RECORDING = new RecordingData(null, null, null, null);
|
||||
|
||||
public Statistics trackStatistics() {
|
||||
return track.getStatistics();
|
||||
return track.statistics();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ import de.dennisguse.opentracks.data.models.ActivityType;
|
||||
import de.dennisguse.opentracks.data.models.Distance;
|
||||
import de.dennisguse.opentracks.data.models.Statistics;
|
||||
import de.dennisguse.opentracks.data.models.Track;
|
||||
import de.dennisguse.opentracks.data.models.TrackBuilder;
|
||||
import de.dennisguse.opentracks.data.models.TrackPoint;
|
||||
import de.dennisguse.opentracks.sensors.sensorData.SensorDataSet;
|
||||
import de.dennisguse.opentracks.services.handlers.AltitudeCorrectionManager;
|
||||
@@ -71,14 +72,14 @@ public class TrackRecordingManager implements SharedPreferences.OnSharedPreferen
|
||||
ZoneOffset zoneOffset = ZoneOffset.systemDefault().getRules().getOffset(segmentStartTrackPoint.getTime());
|
||||
trackStatisticsUpdater = new TrackStatisticsUpdater(segmentStartTrackPoint);
|
||||
|
||||
Track track = new Track(zoneOffset, trackStatisticsUpdater.getTrackStatistics());
|
||||
TrackBuilder track = new TrackBuilder(zoneOffset, trackStatisticsUpdater.getTrackStatistics());
|
||||
|
||||
String activityTypeLocalized = PreferencesUtils.getDefaultActivityTypeLocalized();
|
||||
track.setActivityTypeLocalized(activityTypeLocalized);
|
||||
track.setActivityType(ActivityType.findByLocalizedString(context, activityTypeLocalized));
|
||||
track.setName(TrackNameUtils.getTrackName(context, trackId, track.getStartTime()));
|
||||
|
||||
trackId = contentProviderUtils.insertTrack(track);
|
||||
trackId = contentProviderUtils.insertTrack(track.getTrack());
|
||||
|
||||
onNewTrackPoint(segmentStartTrackPoint);
|
||||
|
||||
@@ -96,7 +97,7 @@ public class TrackRecordingManager implements SharedPreferences.OnSharedPreferen
|
||||
return false;
|
||||
}
|
||||
|
||||
trackStatisticsUpdater = new TrackStatisticsUpdater(track.getStatistics());
|
||||
trackStatisticsUpdater = new TrackStatisticsUpdater(track.statistics());
|
||||
onNewTrackPoint(trackPointCreator.createSegmentStartManual());
|
||||
|
||||
reset();
|
||||
@@ -127,9 +128,10 @@ public class TrackRecordingManager implements SharedPreferences.OnSharedPreferen
|
||||
return null;
|
||||
}
|
||||
|
||||
track.setStatistics(tmpTrackStatisticsUpdater.getTrackStatistics());
|
||||
TrackBuilder trackBuilder = new TrackBuilder(track);
|
||||
trackBuilder.setStatistics(tmpTrackStatisticsUpdater.getTrackStatistics());
|
||||
|
||||
return new RecordingData(track, current.first, current.second, tmpTrackStatisticsUpdater.getCurrentSegment());
|
||||
return new RecordingData(trackBuilder.getTrack(), current.first, current.second, tmpTrackStatisticsUpdater.getCurrentSegment());
|
||||
}
|
||||
|
||||
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
|
||||
|
||||
+3
-3
@@ -149,12 +149,12 @@ public class VoiceAnnouncementManager implements SharedPreferences.OnSharedPrefe
|
||||
}
|
||||
|
||||
//TODO Avoid reloading (some) TrackPoints just to announce the last interval.
|
||||
try (AutoCloseableIterator<TrackPoint> trackPointIterator = contentProviderUtils.getTrackPointIterator(data.track().getId(), startTrackPointId)) {
|
||||
try (AutoCloseableIterator<TrackPoint> trackPointIterator = contentProviderUtils.getTrackPointIterator(data.track().id(), startTrackPointId)) {
|
||||
startTrackPointId = intervalStatistics.addTrackPoints(trackPointIterator);
|
||||
Statistics lastInterval = intervalStatistics.getLastInterval();
|
||||
SensorStatistics sensorStatistics = null;
|
||||
if (data.track().getId() != null) {
|
||||
sensorStatistics = contentProviderUtils.getSensorStats(data.track().getId());
|
||||
if (data.track().id() != null) {
|
||||
sensorStatistics = contentProviderUtils.getSensorStats(data.track().id());
|
||||
}
|
||||
|
||||
return VoiceAnnouncementUtils.createStatistics(context, data.track(), data.sensorDataSet(), PreferencesUtils.getUnitSystem(), PreferencesUtils.isReportSpeed(data.track()), lastInterval, sensorStatistics);
|
||||
|
||||
+3
-2
@@ -35,6 +35,7 @@ import de.dennisguse.opentracks.data.models.HeartRate;
|
||||
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.TrackBuilder;
|
||||
import de.dennisguse.opentracks.sensors.sensorData.SensorDataSet;
|
||||
import de.dennisguse.opentracks.settings.UnitSystem;
|
||||
import de.dennisguse.opentracks.stats.SensorStatistics;
|
||||
@@ -51,12 +52,12 @@ class VoiceAnnouncementUtils {
|
||||
}
|
||||
|
||||
static Spannable createStatistics(Context context, Track track, SensorDataSet sensorDataSet, UnitSystem unitSystem, boolean isReportSpeed, @Nullable Statistics currentInterval, @Nullable SensorStatistics sensorStatistics) {
|
||||
Statistics trackStatistics = track.getStatistics();
|
||||
Statistics trackStatistics = track.statistics();
|
||||
|
||||
SpannableStringBuilder builder = new SpannableStringBuilder();
|
||||
|
||||
if (shouldVoiceAnnounceTime()) {
|
||||
appendTime(builder, track.getStopTime());
|
||||
appendTime(builder, track.stopTime());
|
||||
}
|
||||
|
||||
Distance totalDistance = trackStatistics.totalDistance();
|
||||
|
||||
Reference in New Issue
Block a user