mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge.git
synced 2026-07-31 07:44:24 +02:00
OpenTracks: Fix extra empty activitytrack and rare crash
This commit is contained in:
+3
@@ -95,6 +95,9 @@ public class OpenTracksContentObserver extends ContentObserver {
|
|||||||
if (uri == null) {
|
if (uri == null) {
|
||||||
return; // nothing can be done without an uri
|
return; // nothing can be done without an uri
|
||||||
}
|
}
|
||||||
|
if (mContext == null) {
|
||||||
|
return; // change received after finishing
|
||||||
|
}
|
||||||
if (tracksUri.toString().startsWith(uri.toString())) {
|
if (tracksUri.toString().startsWith(uri.toString())) {
|
||||||
final List<Track> tracks = Track.readTracks(mContext.getContentResolver(), tracksUri, protocolVersion);
|
final List<Track> tracks = Track.readTracks(mContext.getContentResolver(), tracksUri, protocolVersion);
|
||||||
if (!tracks.isEmpty()) {
|
if (!tracks.isEmpty()) {
|
||||||
|
|||||||
+14
-1
@@ -32,12 +32,14 @@ import java.io.IOException;
|
|||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
|
||||||
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
import nodomain.freeyourgadget.gadgetbridge.GBApplication;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.export.ActivityTrackExporter;
|
import nodomain.freeyourgadget.gadgetbridge.export.ActivityTrackExporter;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.export.GPXExporter;
|
import nodomain.freeyourgadget.gadgetbridge.export.GPXExporter;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
|
import nodomain.freeyourgadget.gadgetbridge.model.ActivityKind;
|
||||||
|
import nodomain.freeyourgadget.gadgetbridge.model.ActivityPoint;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.model.ActivityTrack;
|
import nodomain.freeyourgadget.gadgetbridge.model.ActivityTrack;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.FileUtils;
|
import nodomain.freeyourgadget.gadgetbridge.util.FileUtils;
|
||||||
import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
import nodomain.freeyourgadget.gadgetbridge.util.GB;
|
||||||
@@ -161,9 +163,20 @@ public class OpenTracksController extends Activity {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static void saveToGpx(ActivityTrack activityTrack) {
|
private static void saveToGpx(ActivityTrack activityTrack) {
|
||||||
if (activityTrack == null || activityTrack.getSegments().isEmpty()) {
|
if (activityTrack == null || activityTrack.getSegments() == null || activityTrack.getSegments().isEmpty()) {
|
||||||
LOG.debug("No GPS track points to save — skipping GPX export");
|
LOG.debug("No GPS track points to save — skipping GPX export");
|
||||||
return;
|
return;
|
||||||
|
} else {
|
||||||
|
boolean trackpointsFound = false;
|
||||||
|
for (List<ActivityPoint> segment : activityTrack.getSegments()) {
|
||||||
|
if (!segment.isEmpty()) {
|
||||||
|
trackpointsFound = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!trackpointsFound) {
|
||||||
|
LOG.debug("No GPS track points to save — skipping GPX export");
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault());
|
final SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss", Locale.getDefault());
|
||||||
|
|||||||
Reference in New Issue
Block a user