Bug: StatisticsRecordingFragment: speed and location where sometimes 0.

Fixes #628.
This commit is contained in:
Dennis Guse
2021-03-05 17:08:56 +01:00
parent 70f571cd09
commit 3dc8a724d8
5 changed files with 17 additions and 15 deletions
@@ -412,8 +412,10 @@ public class TrackDataHub implements SharedPreferences.OnSharedPreferenceChangeL
lastSeenTrackPointId = localLastSeenTrackPointIdId; lastSeenTrackPointId = localLastSeenTrackPointIdId;
} }
for (TrackDataListener listener : sampledInListeners) { if (trackPoint != null) {
listener.onNewTrackPointsDone(trackPoint); for (TrackDataListener listener : sampledInListeners) {
listener.onNewTrackPointsDone(trackPoint);
}
} }
} }
@@ -16,7 +16,7 @@
package de.dennisguse.opentracks.content; package de.dennisguse.opentracks.content;
import androidx.annotation.Nullable; import androidx.annotation.NonNull;
import de.dennisguse.opentracks.content.data.Marker; import de.dennisguse.opentracks.content.data.Marker;
import de.dennisguse.opentracks.content.data.Track; import de.dennisguse.opentracks.content.data.Track;
@@ -47,20 +47,20 @@ public interface TrackDataListener {
* *
* @param trackPoint the trackPoint * @param trackPoint the trackPoint
*/ */
void onSampledInTrackPoint(TrackPoint trackPoint); void onSampledInTrackPoint(@NonNull TrackPoint trackPoint);
/** /**
* Called when a sampled out track point is read. * Called when a sampled out track point is read.
* *
* @param trackPoint the trackPoint * @param trackPoint the trackPoint
*/ */
void onSampledOutTrackPoint(TrackPoint trackPoint); void onSampledOutTrackPoint(@NonNull TrackPoint trackPoint);
/** /**
* Called when finish sending new track points. * Called when finish sending new track points.
* This gets called after every batch of calls to {@link #onSampledInTrackPoint(TrackPoint)} and {@link #onSampledOutTrackPoint(TrackPoint)}. * This gets called after every batch of calls to {@link #onSampledInTrackPoint(TrackPoint)} and {@link #onSampledOutTrackPoint(TrackPoint)}.
*/ */
void onNewTrackPointsDone(@Nullable TrackPoint lastTrackPoint); void onNewTrackPointsDone(@NonNull TrackPoint lastTrackPoint);
/** /**
* Called to clear previously sent markers. * Called to clear previously sent markers.
@@ -224,14 +224,14 @@ public class ChartFragment extends Fragment implements TrackDataListener {
} }
@Override @Override
public void onSampledInTrackPoint(TrackPoint trackPoint) { public void onSampledInTrackPoint(@NonNull TrackPoint trackPoint) {
if (isResumed()) { if (isResumed()) {
pendingPoints.add(createPendingPoint(trackPoint)); pendingPoints.add(createPendingPoint(trackPoint));
} }
} }
@Override @Override
public void onSampledOutTrackPoint(TrackPoint trackPoint) { public void onSampledOutTrackPoint(@NonNull TrackPoint trackPoint) {
if (isResumed()) { if (isResumed()) {
if (trackStatisticsUpdater != null) { if (trackStatisticsUpdater != null) {
trackStatisticsUpdater.addTrackPoint(trackPoint, recordingDistanceInterval); trackStatisticsUpdater.addTrackPoint(trackPoint, recordingDistanceInterval);
@@ -240,7 +240,7 @@ public class ChartFragment extends Fragment implements TrackDataListener {
} }
@Override @Override
public void onNewTrackPointsDone(TrackPoint unused) { public void onNewTrackPointsDone(@NonNull TrackPoint unused) {
if (isResumed()) { if (isResumed()) {
chartView.addChartPoints(pendingPoints); chartView.addChartPoints(pendingPoints);
pendingPoints.clear(); pendingPoints.clear();
@@ -198,21 +198,21 @@ public class IntervalsFragment extends Fragment implements TrackDataListener {
} }
@Override @Override
public void onSampledInTrackPoint(TrackPoint trackPoint) { public void onSampledInTrackPoint(@NonNull TrackPoint trackPoint) {
if (isResumed()) { if (isResumed()) {
viewModel.add(trackPoint); viewModel.add(trackPoint);
} }
} }
@Override @Override
public void onSampledOutTrackPoint(TrackPoint trackPoint) { public void onSampledOutTrackPoint(@NonNull TrackPoint trackPoint) {
if (isResumed()) { if (isResumed()) {
viewModel.add(trackPoint); viewModel.add(trackPoint);
} }
} }
@Override @Override
public void onNewTrackPointsDone(TrackPoint unused) { public void onNewTrackPointsDone(@NonNull TrackPoint unused) {
if (isResumed()) { if (isResumed()) {
runOnUiThread(this::loadIntervals); runOnUiThread(this::loadIntervals);
} }
@@ -208,17 +208,17 @@ public class StatisticsRecordingFragment extends Fragment implements TrackDataLi
} }
@Override @Override
public void onSampledInTrackPoint(TrackPoint trackPoint) { public void onSampledInTrackPoint(@NonNull TrackPoint trackPoint) {
// We don't care. // We don't care.
} }
@Override @Override
public void onSampledOutTrackPoint(TrackPoint trackPoint) { public void onSampledOutTrackPoint(@NonNull TrackPoint trackPoint) {
// We don't care. // We don't care.
} }
@Override @Override
public void onNewTrackPointsDone(TrackPoint newLastTrackPoint) { public void onNewTrackPointsDone(@NonNull TrackPoint newLastTrackPoint) {
if (isResumed()) { if (isResumed()) {
getActivity().runOnUiThread(() -> { getActivity().runOnUiThread(() -> {
if (isResumed()) { if (isResumed()) {