ChartFragment: re-added isResume() check.

This commit is contained in:
Dennis Guse
2021-05-23 08:00:50 +02:00
parent e580a03115
commit b1b0a45f53
@@ -16,6 +16,7 @@
package de.dennisguse.opentracks.fragments; package de.dennisguse.opentracks.fragments;
import android.app.Activity;
import android.content.SharedPreferences; import android.content.SharedPreferences;
import android.os.Bundle; import android.os.Bundle;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@@ -24,7 +25,6 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment; import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentActivity;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@@ -169,6 +169,7 @@ public class ChartFragment extends Fragment implements TrackDataListener {
@Override @Override
public void onTrackUpdated(Track track) { public void onTrackUpdated(Track track) {
if (isResumed()) {
if (track == null) { if (track == null) {
category = ""; category = "";
return; return;
@@ -181,9 +182,11 @@ public class ChartFragment extends Fragment implements TrackDataListener {
viewBinding.chartView.applyReportSpeed(); viewBinding.chartView.applyReportSpeed();
} }
} }
}
@Override @Override
public void clearTrackPoints() { public void clearTrackPoints() {
if (isResumed()) {
pendingPoints.clear(); pendingPoints.clear();
viewBinding.chartView.reset(); viewBinding.chartView.reset();
runOnUiThread(() -> { runOnUiThread(() -> {
@@ -192,33 +195,44 @@ public class ChartFragment extends Fragment implements TrackDataListener {
} }
}); });
} }
}
public void onSampledInTrackPoint(@NonNull TrackPoint trackPoint, @NonNull TrackStatistics trackStatistics, Speed smoothedSpeed, double smoothedAltitude_m) { public void onSampledInTrackPoint(@NonNull TrackPoint trackPoint, @NonNull TrackStatistics trackStatistics, Speed smoothedSpeed, double smoothedAltitude_m) {
if (isResumed()) {
ChartPoint point = new ChartPoint(trackStatistics, trackPoint, smoothedSpeed, smoothedAltitude_m, chartByDistance, viewBinding.chartView.getMetricUnits()); ChartPoint point = new ChartPoint(trackStatistics, trackPoint, smoothedSpeed, smoothedAltitude_m, chartByDistance, viewBinding.chartView.getMetricUnits());
pendingPoints.add(point); pendingPoints.add(point);
} }
}
@Override @Override
public void onNewTrackPointsDone() { public void onNewTrackPointsDone() {
if (isResumed()) {
viewBinding.chartView.addChartPoints(pendingPoints); viewBinding.chartView.addChartPoints(pendingPoints);
pendingPoints.clear(); pendingPoints.clear();
runOnUiThread(updateChart); runOnUiThread(updateChart);
} }
}
@Override @Override
public void clearMarkers() { public void clearMarkers() {
if (isResumed()) {
viewBinding.chartView.clearMarker(); viewBinding.chartView.clearMarker();
} }
}
@Override @Override
public void onNewMarker(@NonNull Marker marker) { public void onNewMarker(@NonNull Marker marker) {
if (isResumed()) {
viewBinding.chartView.addMarker(marker); viewBinding.chartView.addMarker(marker);
} }
}
@Override @Override
public void onNewMarkersDone() { public void onNewMarkersDone() {
if (isResumed()) {
runOnUiThread(updateChart); runOnUiThread(updateChart);
} }
}
/** /**
* Checks the chart settings. * Checks the chart settings.
@@ -264,7 +278,7 @@ public class ChartFragment extends Fragment implements TrackDataListener {
* @param runnable the runnable * @param runnable the runnable
*/ */
private void runOnUiThread(Runnable runnable) { private void runOnUiThread(Runnable runnable) {
FragmentActivity fragmentActivity = getActivity(); Activity fragmentActivity = getActivity();
if (fragmentActivity != null) { if (fragmentActivity != null) {
fragmentActivity.runOnUiThread(runnable); fragmentActivity.runOnUiThread(runnable);
} }