Bugfix: TrackRecordingService needs to send data from lastTrackPoint in it's 1s updates.

This also removes UI updates if a GPS measurement is received as 1s update should be sufficient.

Fixes #828.
This commit is contained in:
Dennis Guse
2021-06-21 12:46:05 +02:00
parent a5431b1cf5
commit 3030b4dfd9
5 changed files with 33 additions and 7 deletions
@@ -276,10 +276,18 @@ public class StatisticsRecordingFragment extends Fragment {
if (preferenceShowAltitude) {
// Current altitude
Float altitude = latestTrackPoint != null && latestTrackPoint.hasAltitude() ? (float) latestTrackPoint.getAltitude().toM() : null;
Float altitude = null;
int labelId = R.string.value_unknown;
if (latestTrackPoint != null && latestTrackPoint.hasAltitude()) {
altitude = (float) latestTrackPoint.getAltitude().toM();
labelId = latestTrackPoint.getAltitude().getLabelId();
}
Pair<String, String> parts = StringUtils.formatAltitude(getContext(), altitude, preferenceMetricUnits);
viewBinding.statsAltitudeCurrentValue.setText(parts.first);
viewBinding.statsAltitudeCurrentUnit.setText(parts.second);
viewBinding.statsAltitudeCurrentLabelEgm.setText(labelId);
}
// Set coordinate
@@ -313,7 +321,7 @@ public class StatisticsRecordingFragment extends Fragment {
sharedPreferenceChangeListener.onSharedPreferenceChanged(sharedPreferences, getString(R.string.stats_rate_key));
}
this.latestTrackPoint = recordingData.getLatestTrackPoint();
latestTrackPoint = recordingData.getLatestTrackPoint();
if (latestTrackPoint != null && latestTrackPoint.hasLocation() && !latestTrackPoint.isRecent()) {
latestTrackPoint = null;
}