From 881bf1982aef4b764b06908370b136a40049f348 Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Sun, 29 Mar 2020 12:52:03 +0200 Subject: [PATCH] Removed TrackWriterTrackPointFactory. Replaced with local variable for TrackPoint swapping. --- .../io/file/exporter/FileTrackExporter.java | 37 +++---------------- 1 file changed, 5 insertions(+), 32 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/FileTrackExporter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/FileTrackExporter.java index db012f3f9..54dca39a6 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/FileTrackExporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/FileTrackExporter.java @@ -125,10 +125,10 @@ public class FileTrackExporter implements TrackExporter { boolean wroteTrack = false; boolean wroteSegment = false; boolean isLastLocationValid = false; - TrackWriterTrackPointFactory trackPointFactory = new TrackWriterTrackPointFactory(); int locationNumber = 0; + TrackPoint lastTrackPoint = null; - try (TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(track.getId(), -1L, false, trackPointFactory)) { + try (TrackPointIterator trackPointIterator = contentProviderUtils.getTrackPointLocationIterator(track.getId(), -1L, false, TrackPointFactory.DEFAULT_LOCATION_FACTORY)) { while (trackPointIterator.hasNext()) { if (Thread.interrupted()) { @@ -143,7 +143,7 @@ public class FileTrackExporter implements TrackExporter { boolean isSegmentValid = isLocationValid && isLastLocationValid; if (!wroteTrack && isSegmentValid) { // Found the first two consecutive locations that are valid - trackWriter.writeBeginTrack(track, trackPointFactory.lastTrackPoint); + trackWriter.writeBeginTrack(track, lastTrackPoint); wroteTrack = true; } @@ -154,7 +154,7 @@ public class FileTrackExporter implements TrackExporter { wroteSegment = true; // Write the previous trackPoint, which we had previously skipped - trackWriter.writeTrackPoint(trackPointFactory.lastTrackPoint); + trackWriter.writeTrackPoint(lastTrackPoint); } // Write the current trackPoint @@ -168,7 +168,7 @@ public class FileTrackExporter implements TrackExporter { wroteSegment = false; } } - trackPointFactory.swapLocations(); + lastTrackPoint = trackPoint; isLastLocationValid = isLocationValid; } @@ -200,31 +200,4 @@ public class FileTrackExporter implements TrackExporter { trackPoint.setTime(trackPoint.getTime() - offset); } } - - /** - * Keeping the last two locations. - * - * @author Jimmy Shih - */ - private static class TrackWriterTrackPointFactory extends TrackPointFactory { - TrackPoint currentTrackPoint; - TrackPoint lastTrackPoint; - - @Override - public TrackPoint create() { - if (currentTrackPoint == null) { - currentTrackPoint = new TrackPoint(); - } - return currentTrackPoint; - } - - void swapLocations() { - TrackPoint tempTrackPoint = lastTrackPoint; - lastTrackPoint = currentTrackPoint; - currentTrackPoint = tempTrackPoint; - if (currentTrackPoint != null) { - currentTrackPoint.reset(); - } - } - } }