This commit is contained in:
Dennis Guse
2022-01-28 08:03:06 +01:00
parent 2dc362c105
commit 19a958ccbb
5 changed files with 9 additions and 16 deletions
@@ -62,7 +62,7 @@ public class VoiceAnnouncementUtilsTest {
IntervalStatistics.Interval lastInterval; IntervalStatistics.Interval lastInterval;
try (TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(trackId, null)) { try (TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(trackId, null)) {
assertEquals(trackPointIterator.getCount(), numberOfPoints); assertEquals(trackPointIterator.getCount(), numberOfPoints);
IntervalStatistics intervalStatistics = new IntervalStatistics(Distance.of(1000), Distance.of(0)); IntervalStatistics intervalStatistics = new IntervalStatistics(Distance.of(1000));
lastInterval = intervalStatistics.getIntervalList().get(intervalStatistics.getIntervalList().size() - 1); lastInterval = intervalStatistics.getIntervalList().get(intervalStatistics.getIntervalList().size() - 1);
} }
@@ -107,7 +107,7 @@ public class VoiceAnnouncementUtilsTest {
IntervalStatistics.Interval lastInterval; IntervalStatistics.Interval lastInterval;
try (TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(trackId, null)) { try (TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(trackId, null)) {
assertEquals(trackPointIterator.getCount(), numberOfPoints); assertEquals(trackPointIterator.getCount(), numberOfPoints);
IntervalStatistics intervalStatistics = new IntervalStatistics(Distance.of(1000), Distance.of(0)); IntervalStatistics intervalStatistics = new IntervalStatistics(Distance.of(1000));
lastInterval = intervalStatistics.getIntervalList().get(intervalStatistics.getIntervalList().size() - 1); lastInterval = intervalStatistics.getIntervalList().get(intervalStatistics.getIntervalList().size() - 1);
} }
@@ -152,7 +152,7 @@ public class VoiceAnnouncementUtilsTest {
IntervalStatistics.Interval lastInterval; IntervalStatistics.Interval lastInterval;
try (TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(trackId, null)) { try (TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(trackId, null)) {
assertEquals(trackPointIterator.getCount(), numberOfPoints); assertEquals(trackPointIterator.getCount(), numberOfPoints);
IntervalStatistics intervalStatistics = new IntervalStatistics(Distance.of(1000), Distance.of(0)); IntervalStatistics intervalStatistics = new IntervalStatistics(Distance.of(1000));
lastInterval = intervalStatistics.getIntervalList().get(intervalStatistics.getIntervalList().size() - 1); lastInterval = intervalStatistics.getIntervalList().get(intervalStatistics.getIntervalList().size() - 1);
} }
@@ -197,7 +197,7 @@ public class VoiceAnnouncementUtilsTest {
IntervalStatistics.Interval lastInterval; IntervalStatistics.Interval lastInterval;
try (TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(trackId, null)) { try (TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(trackId, null)) {
assertEquals(trackPointIterator.getCount(), numberOfPoints); assertEquals(trackPointIterator.getCount(), numberOfPoints);
IntervalStatistics intervalStatistics = new IntervalStatistics(Distance.of(1000), Distance.of(0)); IntervalStatistics intervalStatistics = new IntervalStatistics(Distance.of(1000));
lastInterval = intervalStatistics.getIntervalList().get(intervalStatistics.getIntervalList().size() - 1); lastInterval = intervalStatistics.getIntervalList().get(intervalStatistics.getIntervalList().size() - 1);
} }
@@ -149,7 +149,7 @@ public class IntervalStatisticsTest {
} }
private void whenAndThen(Pair<Track.Id, TrackStatistics> trackWithStats, int numberOfPoints, float distanceInterval) { private void whenAndThen(Pair<Track.Id, TrackStatistics> trackWithStats, int numberOfPoints, float distanceInterval) {
IntervalStatistics intervalStatistics = new IntervalStatistics(Distance.of(distanceInterval), Distance.of(0)); IntervalStatistics intervalStatistics = new IntervalStatistics(Distance.of(distanceInterval));
Track.Id trackId = trackWithStats.first; Track.Id trackId = trackWithStats.first;
TrackStatistics trackStatistics = trackWithStats.second; TrackStatistics trackStatistics = trackWithStats.second;
try (TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(trackId, null)) { try (TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(trackId, null)) {
@@ -165,11 +165,10 @@ public class VoiceAnnouncement {
boolean isMetricUnits = PreferencesUtils.isMetricUnits(); boolean isMetricUnits = PreferencesUtils.isMetricUnits();
boolean isReportSpeed = PreferencesUtils.isReportSpeed(track.getCategory()); boolean isReportSpeed = PreferencesUtils.isReportSpeed(track.getCategory());
Distance minGPSDistance = PreferencesUtils.getRecordingDistanceInterval();
//TODO Do not load all trackpoints for every announcement //TODO Do not load all trackpoints for every announcement
TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(track.getId(), null); TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(track.getId(), null);
IntervalStatistics intervalStatistics = new IntervalStatistics(Distance.one(isMetricUnits), minGPSDistance); IntervalStatistics intervalStatistics = new IntervalStatistics(Distance.one(isMetricUnits));
intervalStatistics.addTrackPoints(trackPointIterator); intervalStatistics.addTrackPoints(trackPointIterator);
IntervalStatistics.Interval lastInterval = intervalStatistics.getLastInterval(); IntervalStatistics.Interval lastInterval = intervalStatistics.getLastInterval();
@@ -17,16 +17,13 @@ public class IntervalStatistics {
private TrackStatisticsUpdater trackStatisticsUpdater = new TrackStatisticsUpdater(); private TrackStatisticsUpdater trackStatisticsUpdater = new TrackStatisticsUpdater();
private final List<Interval> intervalList; private final List<Interval> intervalList;
private final Distance distanceInterval; private final Distance distanceInterval;
private final Distance minGPSDistance;
private Interval interval, lastInterval; private Interval interval, lastInterval;
/** /**
* @param distanceInterval distance of every interval. * @param distanceInterval distance of every interval.
* @param minGPSDistance the setting value for GPS distance.
*/ */
public IntervalStatistics(Distance distanceInterval, Distance minGPSDistance) { public IntervalStatistics(Distance distanceInterval) {
this.distanceInterval = distanceInterval; this.distanceInterval = distanceInterval;
this.minGPSDistance = minGPSDistance;
interval = new Interval(); interval = new Interval();
lastInterval = new Interval(); lastInterval = new Interval();
@@ -22,7 +22,6 @@ import de.dennisguse.opentracks.data.models.Distance;
import de.dennisguse.opentracks.data.models.Track; 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.data.tables.TrackPointsColumns; import de.dennisguse.opentracks.data.tables.TrackPointsColumns;
import de.dennisguse.opentracks.settings.PreferencesUtils;
/** /**
* This model is used to load intervals for a track. * This model is used to load intervals for a track.
@@ -35,7 +34,6 @@ public class IntervalStatisticsModel extends AndroidViewModel {
private MutableLiveData<List<IntervalStatistics.Interval>> intervalsLiveData; private MutableLiveData<List<IntervalStatistics.Interval>> intervalsLiveData;
private IntervalStatistics intervalStatistics; private IntervalStatistics intervalStatistics;
private Distance distanceInterval; private Distance distanceInterval;
private final Distance minGPSDistance;
private final ContentResolver contentResolver; private final ContentResolver contentResolver;
private ContentObserver trackPointsTableObserver; private ContentObserver trackPointsTableObserver;
private TrackPoint.Id lastTrackPointId; private TrackPoint.Id lastTrackPointId;
@@ -46,7 +44,6 @@ public class IntervalStatisticsModel extends AndroidViewModel {
public IntervalStatisticsModel(@NonNull Application application) { public IntervalStatisticsModel(@NonNull Application application) {
super(application); super(application);
minGPSDistance = PreferencesUtils.getRecordingDistanceInterval();
contentResolver = getApplication().getContentResolver(); contentResolver = getApplication().getContentResolver();
handlerThread = new HandlerThread(TAG); handlerThread = new HandlerThread(TAG);
handlerThread.start(); handlerThread.start();
@@ -75,7 +72,7 @@ public class IntervalStatisticsModel extends AndroidViewModel {
intervalsLiveData = new MutableLiveData<>(); intervalsLiveData = new MutableLiveData<>();
distanceInterval = interval.getDistance(metricUnits); distanceInterval = interval.getDistance(metricUnits);
intervalStatistics = new IntervalStatistics(distanceInterval, minGPSDistance); intervalStatistics = new IntervalStatistics(distanceInterval);
loadIntervalStatistics(trackId); loadIntervalStatistics(trackId);
} }
@@ -114,7 +111,7 @@ public class IntervalStatisticsModel extends AndroidViewModel {
lastTrackPointId = null; lastTrackPointId = null;
distanceInterval = interval.getDistance(metricUnits); distanceInterval = interval.getDistance(metricUnits);
intervalStatistics = new IntervalStatistics(distanceInterval, minGPSDistance); intervalStatistics = new IntervalStatistics(distanceInterval);
loadIntervalStatistics(trackId); loadIntervalStatistics(trackId);
} }