From 65c8e8542e4cf68888694817ea14e66f859f2b39 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Sat, 1 Nov 2025 09:30:47 +0100 Subject: [PATCH] Cleanup: pass RecordingData to VoiceAnnouncementManager. --- .../services/TrackRecordingService.java | 2 +- .../VoiceAnnouncementManager.java | 19 +++++++++---------- .../RecordingLayoutIO.java | 1 + 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java index 3a04ae1aa..8baeba4ae 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java @@ -318,7 +318,7 @@ public class TrackRecordingService extends Service implements TrackPointCreator. // Compute temporary track statistics using sensorData and update time. RecordingData data = trackRecordingManager.getDataForUI(); - voiceAnnouncementManager.announceStatisticsIfNeeded(data.track(), data.sensorDataSet()); + voiceAnnouncementManager.announceStatisticsIfNeeded(data); recordingDataObservable.postValue(data); } diff --git a/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementManager.java b/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementManager.java index 3c0ec52b8..917339e90 100644 --- a/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/announcement/VoiceAnnouncementManager.java @@ -32,9 +32,8 @@ import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.data.ContentProviderUtils; 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.TrackPoint; -import de.dennisguse.opentracks.sensors.sensorData.SensorDataSet; +import de.dennisguse.opentracks.services.RecordingData; import de.dennisguse.opentracks.settings.PreferencesUtils; import de.dennisguse.opentracks.stats.SensorStatistics; import de.dennisguse.opentracks.ui.intervals.IntervalStatisticsUpdater; @@ -120,13 +119,13 @@ public class VoiceAnnouncementManager implements SharedPreferences.OnSharedPrefe voiceAnnouncement.speak(VoiceAnnouncementUtils.createIdle(context)); } - public void announceStatisticsIfNeeded(@NonNull Track track, @NonNull SensorDataSet sensorDataSet) { + public void announceStatisticsIfNeeded(@NonNull RecordingData data) { if (shouldNotAnnounce()) { return; } boolean announce = false; - this.trackStatistics = track.getStatistics(); + this.trackStatistics = data.track().getStatistics(); if (trackStatistics.totalDistance().greaterThan(nextTotalDistance)) { updateNextTaskDistance(); announce = true; @@ -137,11 +136,11 @@ public class VoiceAnnouncementManager implements SharedPreferences.OnSharedPrefe } if (announce) { - voiceAnnouncement.speak(createAnnouncement(track, sensorDataSet)); + voiceAnnouncement.speak(createAnnouncement(data)); } } - private Spannable createAnnouncement(Track track, SensorDataSet sensorDataSet) { + private Spannable createAnnouncement(RecordingData data) { Distance currentIntervalDistance = PreferencesUtils.getVoiceAnnouncementDistance(); if (currentIntervalDistance != intervalDistance) { intervalStatistics = new IntervalStatisticsUpdater(currentIntervalDistance); @@ -150,15 +149,15 @@ public class VoiceAnnouncementManager implements SharedPreferences.OnSharedPrefe } //TODO Avoid reloading (some) TrackPoints just to announce the last interval. - try (AutoCloseableIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(track.getId(), startTrackPointId)) { + try (AutoCloseableIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(data.track().getId(), startTrackPointId)) { startTrackPointId = intervalStatistics.addTrackPoints(trackPointIterator); Statistics lastInterval = intervalStatistics.getLastInterval(); SensorStatistics sensorStatistics = null; - if (track.getId() != null) { - sensorStatistics = contentProviderUtils.getSensorStats(track.getId()); + if (data.track().getId() != null) { + sensorStatistics = contentProviderUtils.getSensorStats(data.track().getId()); } - return VoiceAnnouncementUtils.createStatistics(context, track, sensorDataSet, PreferencesUtils.getUnitSystem(), PreferencesUtils.isReportSpeed(track), lastInterval, sensorStatistics); + return VoiceAnnouncementUtils.createStatistics(context, data.track(), data.sensorDataSet(), PreferencesUtils.getUnitSystem(), PreferencesUtils.isReportSpeed(data.track()), lastInterval, sensorStatistics); } } diff --git a/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/RecordingLayoutIO.java b/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/RecordingLayoutIO.java index fd30e6610..0c7752af1 100644 --- a/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/RecordingLayoutIO.java +++ b/src/main/java/de/dennisguse/opentracks/ui/customRecordingLayout/RecordingLayoutIO.java @@ -11,6 +11,7 @@ import java.util.stream.Collectors; import de.dennisguse.opentracks.R; import de.dennisguse.opentracks.settings.PreferencesUtils; +//TODO Migrate to DataStore. public class RecordingLayoutIO { private static final String TAG = RecordingLayout.class.getSimpleName();