diff --git a/src/main/java/de/dennisguse/opentracks/content/TrackDataHub.java b/src/main/java/de/dennisguse/opentracks/content/TrackDataHub.java index f4f3e0e29..48b2dfad7 100644 --- a/src/main/java/de/dennisguse/opentracks/content/TrackDataHub.java +++ b/src/main/java/de/dennisguse/opentracks/content/TrackDataHub.java @@ -412,8 +412,10 @@ public class TrackDataHub implements SharedPreferences.OnSharedPreferenceChangeL lastSeenTrackPointId = localLastSeenTrackPointIdId; } - for (TrackDataListener listener : sampledInListeners) { - listener.onNewTrackPointsDone(trackPoint); + if (trackPoint != null) { + for (TrackDataListener listener : sampledInListeners) { + listener.onNewTrackPointsDone(trackPoint); + } } } diff --git a/src/main/java/de/dennisguse/opentracks/content/TrackDataListener.java b/src/main/java/de/dennisguse/opentracks/content/TrackDataListener.java index 810b2e7e2..84f64747e 100644 --- a/src/main/java/de/dennisguse/opentracks/content/TrackDataListener.java +++ b/src/main/java/de/dennisguse/opentracks/content/TrackDataListener.java @@ -16,7 +16,7 @@ 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.Track; @@ -47,20 +47,20 @@ public interface TrackDataListener { * * @param trackPoint the trackPoint */ - void onSampledInTrackPoint(TrackPoint trackPoint); + void onSampledInTrackPoint(@NonNull TrackPoint trackPoint); /** * Called when a sampled out track point is read. * * @param trackPoint the trackPoint */ - void onSampledOutTrackPoint(TrackPoint trackPoint); + void onSampledOutTrackPoint(@NonNull TrackPoint trackPoint); /** * Called when finish sending new track points. * 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. diff --git a/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java index 28d7008c9..a7788528f 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/ChartFragment.java @@ -224,14 +224,14 @@ public class ChartFragment extends Fragment implements TrackDataListener { } @Override - public void onSampledInTrackPoint(TrackPoint trackPoint) { + public void onSampledInTrackPoint(@NonNull TrackPoint trackPoint) { if (isResumed()) { pendingPoints.add(createPendingPoint(trackPoint)); } } @Override - public void onSampledOutTrackPoint(TrackPoint trackPoint) { + public void onSampledOutTrackPoint(@NonNull TrackPoint trackPoint) { if (isResumed()) { if (trackStatisticsUpdater != null) { trackStatisticsUpdater.addTrackPoint(trackPoint, recordingDistanceInterval); @@ -240,7 +240,7 @@ public class ChartFragment extends Fragment implements TrackDataListener { } @Override - public void onNewTrackPointsDone(TrackPoint unused) { + public void onNewTrackPointsDone(@NonNull TrackPoint unused) { if (isResumed()) { chartView.addChartPoints(pendingPoints); pendingPoints.clear(); diff --git a/src/main/java/de/dennisguse/opentracks/fragments/IntervalsFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/IntervalsFragment.java index 9ddad34c1..be415d71e 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/IntervalsFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/IntervalsFragment.java @@ -198,21 +198,21 @@ public class IntervalsFragment extends Fragment implements TrackDataListener { } @Override - public void onSampledInTrackPoint(TrackPoint trackPoint) { + public void onSampledInTrackPoint(@NonNull TrackPoint trackPoint) { if (isResumed()) { viewModel.add(trackPoint); } } @Override - public void onSampledOutTrackPoint(TrackPoint trackPoint) { + public void onSampledOutTrackPoint(@NonNull TrackPoint trackPoint) { if (isResumed()) { viewModel.add(trackPoint); } } @Override - public void onNewTrackPointsDone(TrackPoint unused) { + public void onNewTrackPointsDone(@NonNull TrackPoint unused) { if (isResumed()) { runOnUiThread(this::loadIntervals); } diff --git a/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java index d761f19bc..9d8d2d9e9 100644 --- a/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java +++ b/src/main/java/de/dennisguse/opentracks/fragments/StatisticsRecordingFragment.java @@ -208,17 +208,17 @@ public class StatisticsRecordingFragment extends Fragment implements TrackDataLi } @Override - public void onSampledInTrackPoint(TrackPoint trackPoint) { + public void onSampledInTrackPoint(@NonNull TrackPoint trackPoint) { // We don't care. } @Override - public void onSampledOutTrackPoint(TrackPoint trackPoint) { + public void onSampledOutTrackPoint(@NonNull TrackPoint trackPoint) { // We don't care. } @Override - public void onNewTrackPointsDone(TrackPoint newLastTrackPoint) { + public void onNewTrackPointsDone(@NonNull TrackPoint newLastTrackPoint) { if (isResumed()) { getActivity().runOnUiThread(() -> { if (isResumed()) {