forked from upstream-mirrors/OpenTracks
Cleanup: pass RecordingData to VoiceAnnouncementManager.
This commit is contained in:
@@ -318,7 +318,7 @@ public class TrackRecordingService extends Service implements TrackPointCreator.
|
|||||||
// Compute temporary track statistics using sensorData and update time.
|
// Compute temporary track statistics using sensorData and update time.
|
||||||
RecordingData data = trackRecordingManager.getDataForUI();
|
RecordingData data = trackRecordingManager.getDataForUI();
|
||||||
|
|
||||||
voiceAnnouncementManager.announceStatisticsIfNeeded(data.track(), data.sensorDataSet());
|
voiceAnnouncementManager.announceStatisticsIfNeeded(data);
|
||||||
|
|
||||||
recordingDataObservable.postValue(data);
|
recordingDataObservable.postValue(data);
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-10
@@ -32,9 +32,8 @@ import de.dennisguse.opentracks.R;
|
|||||||
import de.dennisguse.opentracks.data.ContentProviderUtils;
|
import de.dennisguse.opentracks.data.ContentProviderUtils;
|
||||||
import de.dennisguse.opentracks.data.models.Distance;
|
import de.dennisguse.opentracks.data.models.Distance;
|
||||||
import de.dennisguse.opentracks.data.models.Statistics;
|
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.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.settings.PreferencesUtils;
|
||||||
import de.dennisguse.opentracks.stats.SensorStatistics;
|
import de.dennisguse.opentracks.stats.SensorStatistics;
|
||||||
import de.dennisguse.opentracks.ui.intervals.IntervalStatisticsUpdater;
|
import de.dennisguse.opentracks.ui.intervals.IntervalStatisticsUpdater;
|
||||||
@@ -120,13 +119,13 @@ public class VoiceAnnouncementManager implements SharedPreferences.OnSharedPrefe
|
|||||||
voiceAnnouncement.speak(VoiceAnnouncementUtils.createIdle(context));
|
voiceAnnouncement.speak(VoiceAnnouncementUtils.createIdle(context));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void announceStatisticsIfNeeded(@NonNull Track track, @NonNull SensorDataSet sensorDataSet) {
|
public void announceStatisticsIfNeeded(@NonNull RecordingData data) {
|
||||||
if (shouldNotAnnounce()) {
|
if (shouldNotAnnounce()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean announce = false;
|
boolean announce = false;
|
||||||
this.trackStatistics = track.getStatistics();
|
this.trackStatistics = data.track().getStatistics();
|
||||||
if (trackStatistics.totalDistance().greaterThan(nextTotalDistance)) {
|
if (trackStatistics.totalDistance().greaterThan(nextTotalDistance)) {
|
||||||
updateNextTaskDistance();
|
updateNextTaskDistance();
|
||||||
announce = true;
|
announce = true;
|
||||||
@@ -137,11 +136,11 @@ public class VoiceAnnouncementManager implements SharedPreferences.OnSharedPrefe
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (announce) {
|
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();
|
Distance currentIntervalDistance = PreferencesUtils.getVoiceAnnouncementDistance();
|
||||||
if (currentIntervalDistance != intervalDistance) {
|
if (currentIntervalDistance != intervalDistance) {
|
||||||
intervalStatistics = new IntervalStatisticsUpdater(currentIntervalDistance);
|
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.
|
//TODO Avoid reloading (some) TrackPoints just to announce the last interval.
|
||||||
try (AutoCloseableIterator<TrackPoint> trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(track.getId(), startTrackPointId)) {
|
try (AutoCloseableIterator<TrackPoint> trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(data.track().getId(), startTrackPointId)) {
|
||||||
startTrackPointId = intervalStatistics.addTrackPoints(trackPointIterator);
|
startTrackPointId = intervalStatistics.addTrackPoints(trackPointIterator);
|
||||||
Statistics lastInterval = intervalStatistics.getLastInterval();
|
Statistics lastInterval = intervalStatistics.getLastInterval();
|
||||||
SensorStatistics sensorStatistics = null;
|
SensorStatistics sensorStatistics = null;
|
||||||
if (track.getId() != null) {
|
if (data.track().getId() != null) {
|
||||||
sensorStatistics = contentProviderUtils.getSensorStats(track.getId());
|
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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import java.util.stream.Collectors;
|
|||||||
import de.dennisguse.opentracks.R;
|
import de.dennisguse.opentracks.R;
|
||||||
import de.dennisguse.opentracks.settings.PreferencesUtils;
|
import de.dennisguse.opentracks.settings.PreferencesUtils;
|
||||||
|
|
||||||
|
//TODO Migrate to DataStore.
|
||||||
public class RecordingLayoutIO {
|
public class RecordingLayoutIO {
|
||||||
|
|
||||||
private static final String TAG = RecordingLayout.class.getSimpleName();
|
private static final String TAG = RecordingLayout.class.getSimpleName();
|
||||||
|
|||||||
Reference in New Issue
Block a user