From 6749f484e8aa8a2d15bf3dc5c74247059ba896da Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Sat, 26 Jun 2021 23:21:31 +0200 Subject: [PATCH] Export: removed KML/KMZ format variants * KML/KMZ with track only (contained only coordinates) * KML/KMZ with track details (did not contain markers and sensor data) --- .../provider/ShareContentProviderTest.java | 6 +- .../io/file/importer/ExportImportTest.java | 40 ---- .../opentracks/util/PreferencesUtilsTest.java | 4 +- .../opentracks/ShowOnMapProxyActivity.java | 3 +- .../provider/ShareContentProvider.java | 12 -- .../opentracks/io/file/TrackFileFormat.java | 88 +-------- .../io/file/exporter/KMLTrackExporter.java | 179 +++++++----------- 7 files changed, 78 insertions(+), 254 deletions(-) diff --git a/src/androidTest/java/de/dennisguse/opentracks/content/provider/ShareContentProviderTest.java b/src/androidTest/java/de/dennisguse/opentracks/content/provider/ShareContentProviderTest.java index 83e231302..5a4b51c8c 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/content/provider/ShareContentProviderTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/content/provider/ShareContentProviderTest.java @@ -29,7 +29,7 @@ public class ShareContentProviderTest { trackIds.add(new Track.Id(3)); trackIds.add(new Track.Id(5)); - Pair shareURIandMIME = ShareContentProvider.createURI(trackIds, "TrackName", TrackFileFormat.KML_ONLY_TRACK); + Pair shareURIandMIME = ShareContentProvider.createURI(trackIds, "TrackName", TrackFileFormat.KML_WITH_TRACKDETAIL_AND_SENSORDATA); assertEquals(trackIds, ShareContentProvider.parseURI(shareURIandMIME.first)); } @@ -38,8 +38,8 @@ public class ShareContentProviderTest { public void testCreateURIescapeFilename() { Set trackIds = new HashSet<>(); trackIds.add(new Track.Id(1)); - Pair shareURIandMIME = ShareContentProvider.createURI(trackIds, "../../&1=1", TrackFileFormat.KML_ONLY_TRACK); + Pair shareURIandMIME = ShareContentProvider.createURI(trackIds, "../../&1=1", TrackFileFormat.KML_WITH_TRACKDETAIL_AND_SENSORDATA); - assertEquals(Uri.parse("content://de.dennisguse.opentracks.debug.content/tracks/kml_only_track/1/..%2F..%2F%261%3D1.kml"), shareURIandMIME.first); + assertEquals(Uri.parse("content://de.dennisguse.opentracks.debug.content/tracks/kml_with_trackdetail_and_sensordata/1/..%2F..%2F%261%3D1.kml"), shareURIandMIME.first); } } \ No newline at end of file diff --git a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java index 1a58dfced..944d8dc23 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/io/file/importer/ExportImportTest.java @@ -156,46 +156,6 @@ public class ExportImportTest { } } - @LargeTest - @Test - public void kml_with_trackdetail() throws TimeoutException, IOException { - setUp(false); - - // given - Track track = contentProviderUtils.getTrack(trackId); - - TrackExporter trackExporter = TrackFileFormat.KML_WITH_TRACKDETAIL.createTrackExporter(context); - - // when - // 1. export - trackExporter.writeTrack(track, context.getContentResolver().openOutputStream(tmpFileUri)); - contentProviderUtils.deleteTrack(context, trackId); - - // 2. import - InputStream inputStream = context.getContentResolver().openInputStream(tmpFileUri); - XMLImporter importer = new XMLImporter(new KmlTrackImporter(context, trackImporter)); - importTrackId = importer.importFile(inputStream).get(0); - - // then - // 1. track - Track importedTrack = contentProviderUtils.getTrack(importTrackId); - assertNotNull(importedTrack); - assertEquals(track.getCategory(), importedTrack.getCategory()); - assertEquals(track.getDescription(), importedTrack.getDescription()); - assertEquals(track.getName(), importedTrack.getName()); - assertEquals(track.getIcon(), importedTrack.getIcon()); - assertEquals(track.getUuid(), importedTrack.getUuid()); - - // 2. trackpoints - assertTrackpoints(trackPoints, false, false, false, false, false, false); - - // 3. trackstatistics - assertTrackStatistics(false, false, true); - - // 4. markers - assertMarkers(); - } - @LargeTest @Test public void kml_with_trackdetail_and_sensordata() throws TimeoutException, IOException { diff --git a/src/androidTest/java/de/dennisguse/opentracks/util/PreferencesUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/util/PreferencesUtilsTest.java index d3e8e03eb..886cf2e6e 100644 --- a/src/androidTest/java/de/dennisguse/opentracks/util/PreferencesUtilsTest.java +++ b/src/androidTest/java/de/dennisguse/opentracks/util/PreferencesUtilsTest.java @@ -25,14 +25,14 @@ public class PreferencesUtilsTest { SharedPreferences sharedPreferences = PreferencesUtils.getSharedPreferences(context); SharedPreferences.Editor editor = sharedPreferences.edit(); - editor.putString(context.getString(R.string.export_trackfileformat_key), TrackFileFormat.KMZ_WITH_TRACKDETAIL.name()); + editor.putString(context.getString(R.string.export_trackfileformat_key), TrackFileFormat.KML_WITH_TRACKDETAIL_AND_SENSORDATA.name()); editor.commit(); // when TrackFileFormat trackFileFormat = PreferencesUtils.getExportTrackFileFormat(sharedPreferences, context); // then - assertEquals(TrackFileFormat.KMZ_WITH_TRACKDETAIL, trackFileFormat); + assertEquals(TrackFileFormat.KML_WITH_TRACKDETAIL_AND_SENSORDATA, trackFileFormat); } @Test diff --git a/src/main/java/de/dennisguse/opentracks/ShowOnMapProxyActivity.java b/src/main/java/de/dennisguse/opentracks/ShowOnMapProxyActivity.java index 3ffd953ca..1946394e7 100644 --- a/src/main/java/de/dennisguse/opentracks/ShowOnMapProxyActivity.java +++ b/src/main/java/de/dennisguse/opentracks/ShowOnMapProxyActivity.java @@ -57,9 +57,10 @@ public abstract class ShowOnMapProxyActivity extends AppCompatActivity { context.startActivity(Intent.createChooser(intent, context.getString(R.string.open_track_as_trackfileformat, trackFileFormat.getExtension()))); } + @Deprecated //TODO I guess we should send KML; zipping should not really improve the situation. public static class KMZ extends ShowOnMapProxyActivity { public KMZ() { - super(TrackFileFormat.KMZ_WITH_TRACKDETAIL); + super(TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA); } } diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/ShareContentProvider.java b/src/main/java/de/dennisguse/opentracks/content/provider/ShareContentProvider.java index f0daa9052..616582c5f 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/ShareContentProvider.java +++ b/src/main/java/de/dennisguse/opentracks/content/provider/ShareContentProvider.java @@ -64,12 +64,8 @@ public class ShareContentProvider extends CustomContentProvider { static { uriMatcher.addURI(ContentProviderUtils.AUTHORITY_PACKAGE, TracksColumns.TABLE_NAME + "/" + TrackFileFormat.GPX.getName() + "/*/*", URI_GPX); - uriMatcher.addURI(ContentProviderUtils.AUTHORITY_PACKAGE, TracksColumns.TABLE_NAME + "/" + TrackFileFormat.KML_ONLY_TRACK.getName() + "/*/*", URI_KML_ONLY); - uriMatcher.addURI(ContentProviderUtils.AUTHORITY_PACKAGE, TracksColumns.TABLE_NAME + "/" + TrackFileFormat.KML_WITH_TRACKDETAIL.getName() + "/*/*", URI_KML_WITH_TRACKDETAIL); uriMatcher.addURI(ContentProviderUtils.AUTHORITY_PACKAGE, TracksColumns.TABLE_NAME + "/" + TrackFileFormat.KML_WITH_TRACKDETAIL_AND_SENSORDATA.getName() + "/*/*", URI_KML_WITH_TRACKDETAIL_SENSORDATA); - uriMatcher.addURI(ContentProviderUtils.AUTHORITY_PACKAGE, TracksColumns.TABLE_NAME + "/" + TrackFileFormat.KMZ_ONLY_TRACK.getName() + "/*/*", URI_KMZ_ONLY_TRACK); - uriMatcher.addURI(ContentProviderUtils.AUTHORITY_PACKAGE, TracksColumns.TABLE_NAME + "/" + TrackFileFormat.KMZ_WITH_TRACKDETAIL.getName() + "/*/*", URI_KMZ_WITH_TRACKDETAIL); uriMatcher.addURI(ContentProviderUtils.AUTHORITY_PACKAGE, TracksColumns.TABLE_NAME + "/" + TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA.getName() + "/*/*", URI_KMZ_WITH_TRACKDETAIL_AND_SENSORDATA); uriMatcher.addURI(ContentProviderUtils.AUTHORITY_PACKAGE, TracksColumns.TABLE_NAME + "/" + TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA_AND_PICTURES.getName() + "/*/*", URI_KMZ_WITH_TRACKDETAIL_SENSORDATA_AND_PICTURES); } @@ -138,17 +134,9 @@ public class ShareContentProvider extends CustomContentProvider { case URI_GPX: return TrackFileFormat.GPX; - case URI_KML_ONLY: - return TrackFileFormat.KML_ONLY_TRACK; - case URI_KML_WITH_TRACKDETAIL: - return TrackFileFormat.KML_WITH_TRACKDETAIL; case URI_KML_WITH_TRACKDETAIL_SENSORDATA: return TrackFileFormat.KML_WITH_TRACKDETAIL_AND_SENSORDATA; - case URI_KMZ_ONLY_TRACK: - return TrackFileFormat.KMZ_ONLY_TRACK; - case URI_KMZ_WITH_TRACKDETAIL: - return TrackFileFormat.KMZ_WITH_TRACKDETAIL; case URI_KMZ_WITH_TRACKDETAIL_AND_SENSORDATA: return TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA; case URI_KMZ_WITH_TRACKDETAIL_SENSORDATA_AND_PICTURES: diff --git a/src/main/java/de/dennisguse/opentracks/io/file/TrackFileFormat.java b/src/main/java/de/dennisguse/opentracks/io/file/TrackFileFormat.java index d915ad3a8..81dd7c96e 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/TrackFileFormat.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/TrackFileFormat.java @@ -16,41 +16,10 @@ import de.dennisguse.opentracks.io.file.exporter.TrackExporter; */ public enum TrackFileFormat { - @Deprecated //Not needed anymore; we now have OSMDashboard; was only used to share with other applications - KML_ONLY_TRACK { - @Override - public TrackExporter createTrackExporter(Context context) { - return new KMLTrackExporter(context, false, false, false); - } - - @Override - public String getMimeType() { - return MIME_KML; - } - - public String getExtension() { - return "kml"; - } - }, - KML_WITH_TRACKDETAIL { - @Override - public TrackExporter createTrackExporter(Context context) { - return new KMLTrackExporter(context, true, false, false); - } - - @Override - public String getMimeType() { - return MIME_KML; - } - - public String getExtension() { - return "kml"; - } - }, KML_WITH_TRACKDETAIL_AND_SENSORDATA { @Override public TrackExporter createTrackExporter(Context context) { - return new KMLTrackExporter(context, true, true, false); + return new KMLTrackExporter(context, false); } @Override @@ -62,61 +31,15 @@ public enum TrackFileFormat { return "kml"; } }, - KMZ_ONLY_TRACK { - private static final boolean exportPhotos = false; - @Override - public TrackExporter createTrackExporter(Context context) { - KMLTrackExporter exporter = new KMLTrackExporter(context, false, false, exportPhotos); - return new KmzTrackExporter(context, new ContentProviderUtils(context), exporter, exportPhotos); - } - - @Override - public String getMimeType() { - return MIME_KMZ; - } - - public String getExtension() { - return "kmz"; - } - - @Override - public boolean includesPhotos() { - return exportPhotos; - } - }, - KMZ_WITH_TRACKDETAIL { - - private static final boolean exportPhotos = false; - - @Override - public TrackExporter createTrackExporter(Context context) { - KMLTrackExporter exporter = new KMLTrackExporter(context, true, false, exportPhotos); - return new KmzTrackExporter(context, new ContentProviderUtils(context), exporter, exportPhotos); - } - - @Override - public String getMimeType() { - return MIME_KMZ; - } - - public String getExtension() { - return "kmz"; - } - - @Override - public boolean includesPhotos() { - return exportPhotos; - } - - }, + @Deprecated //TODO Check if we really need this KMZ_WITH_TRACKDETAIL_AND_SENSORDATA { private static final boolean exportPhotos = false; @Override public TrackExporter createTrackExporter(Context context) { - KMLTrackExporter exporter = new KMLTrackExporter(context, true, true, exportPhotos); + KMLTrackExporter exporter = new KMLTrackExporter(context, exportPhotos); return new KmzTrackExporter(context, new ContentProviderUtils(context), exporter, exportPhotos); } @@ -133,16 +56,15 @@ public enum TrackFileFormat { public boolean includesPhotos() { return exportPhotos; } - - }, + KMZ_WITH_TRACKDETAIL_AND_SENSORDATA_AND_PICTURES { private static final boolean exportPhotos = true; @Override public TrackExporter createTrackExporter(Context context) { - KMLTrackExporter exporter = new KMLTrackExporter(context, true, true, exportPhotos); + KMLTrackExporter exporter = new KMLTrackExporter(context, exportPhotos); return new KmzTrackExporter(context, new ContentProviderUtils(context), exporter, exportPhotos); } diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/KMLTrackExporter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/KMLTrackExporter.java index c021330f0..5ab622c8a 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/KMLTrackExporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/KMLTrackExporter.java @@ -69,8 +69,6 @@ public class KMLTrackExporter implements TrackExporter { private final Context context; private final boolean exportPhotos; - private final boolean exportTrackDetail; - private final boolean exportSensorData; private final ContentProviderUtils contentProviderUtils; private PrintWriter printWriter; @@ -82,13 +80,8 @@ public class KMLTrackExporter implements TrackExporter { private final List altitudeGainList = new ArrayList<>(); private final List altitudeLossList = new ArrayList<>(); - @Deprecated // Figure out a better way to do this! (if needed) - private TrackPoint startTrackPoint; - - public KMLTrackExporter(Context context, boolean exportTrackDetail, boolean exportSensorData, boolean exportPhotos) { + public KMLTrackExporter(Context context, boolean exportPhotos) { this.context = context; - this.exportTrackDetail = exportTrackDetail; - this.exportSensorData = exportSensorData; this.exportPhotos = exportPhotos; this.contentProviderUtils = new ContentProviderUtils(context); } @@ -160,11 +153,6 @@ public class KMLTrackExporter implements TrackExporter { if (Thread.interrupted()) throw new InterruptedException(); TrackPoint trackPoint = trackPointIterator.next(); - setLocationTime(trackPoint, offset); - if (startTrackPoint == null) { - startTrackPoint = trackPoint; - } - if (!wroteTrack) { writeBeginTrack(track); wroteTrack = true; @@ -207,8 +195,6 @@ public class KMLTrackExporter implements TrackExporter { } writeEndTrack(); - - startTrackPoint = null; } } @@ -238,23 +224,19 @@ public class KMLTrackExporter implements TrackExporter { printWriter.println("1"); printWriter.println("1"); - if (exportTrackDetail) { - Track track = tracks[0]; - printWriter.println("" + StringUtils.formatCData(track.getName()) + ""); - printWriter.println("" + StringUtils.formatCData(context.getString(R.string.app_name)) + ""); - } + Track track = tracks[0]; + printWriter.println("" + StringUtils.formatCData(track.getName()) + ""); + printWriter.println("" + StringUtils.formatCData(context.getString(R.string.app_name)) + ""); writeTrackStyle(); writePlacemarkerStyle(MARKER_STYLE, MARKER_ICON, 20, 2); printWriter.println(""); writeSimpleArrayStyle(EXTENDED_DATA_TYPE_SPEED, context.getString(R.string.description_speed_ms)); + writeSimpleArrayStyle(EXTENDED_DATA_TYPE_POWER, context.getString(R.string.description_sensor_power)); + writeSimpleArrayStyle(EXTENDED_DATA_TYPE_CADENCE, context.getString(R.string.description_sensor_cadence)); + writeSimpleArrayStyle(EXTENDED_DATA_TYPE_HEART_RATE, context.getString(R.string.description_sensor_heart_rate)); - if (exportSensorData) { - writeSimpleArrayStyle(EXTENDED_DATA_TYPE_POWER, context.getString(R.string.description_sensor_power)); - writeSimpleArrayStyle(EXTENDED_DATA_TYPE_CADENCE, context.getString(R.string.description_sensor_cadence)); - writeSimpleArrayStyle(EXTENDED_DATA_TYPE_HEART_RATE, context.getString(R.string.description_sensor_heart_rate)); - } printWriter.println(""); } } @@ -269,15 +251,13 @@ public class KMLTrackExporter implements TrackExporter { private void writeBeginMarkers(Track track) { if (printWriter != null) { printWriter.println(""); - if (exportTrackDetail) { - printWriter.println("" + StringUtils.formatCData(context.getString(R.string.track_markers, track.getName())) + ""); - } + printWriter.println("" + StringUtils.formatCData(context.getString(R.string.track_markers, track.getName())) + ""); printWriter.println("1"); } } private void writeMarker(Marker marker) { - if (printWriter != null && exportTrackDetail) { + if (printWriter != null) { boolean existsPhoto = FileUtils.buildInternalPhotoFile(context, marker.getTrackId(), marker.getPhotoURI()) != null; if (marker.hasPhoto() && exportPhotos && existsPhoto) { float heading = getHeading(marker.getTrackId(), marker.getLocation()); @@ -312,12 +292,10 @@ public class KMLTrackExporter implements TrackExporter { if (printWriter != null) { printWriter.println(""); - if (exportTrackDetail) { - printWriter.println("" + StringUtils.formatCData(track.getName()) + ""); - printWriter.println("" + StringUtils.formatCData(track.getDescription()) + ""); - printWriter.println("" + StringUtils.formatCData(track.getIcon()) + ""); - printWriter.println("" + track.getUuid() + ""); - } + printWriter.println("" + StringUtils.formatCData(track.getName()) + ""); + printWriter.println("" + StringUtils.formatCData(track.getDescription()) + ""); + printWriter.println("" + StringUtils.formatCData(track.getIcon()) + ""); + printWriter.println("" + track.getUuid() + ""); printWriter.println("#" + TRACK_STYLE + ""); writeCategory(track.getCategory()); @@ -357,25 +335,23 @@ public class KMLTrackExporter implements TrackExporter { if (speedList.stream().anyMatch(Objects::nonNull)) { writeSimpleArrayData(speedList, EXTENDED_DATA_TYPE_SPEED); } - if (exportSensorData) { - if (distanceList.stream().anyMatch(Objects::nonNull)) { - writeSimpleArrayData(distanceList, EXTENDED_DATA_TYPE_DISTANCE); - } - if (powerList.stream().anyMatch(Objects::nonNull)) { - writeSimpleArrayData(powerList, EXTENDED_DATA_TYPE_POWER); - } - if (cadenceList.stream().anyMatch(Objects::nonNull)) { - writeSimpleArrayData(cadenceList, EXTENDED_DATA_TYPE_CADENCE); - } - if (heartRateList.stream().anyMatch(Objects::nonNull)) { - writeSimpleArrayData(heartRateList, EXTENDED_DATA_TYPE_HEART_RATE); - } - if (altitudeGainList.stream().anyMatch(Objects::nonNull)) { - writeSimpleArrayData(altitudeGainList, EXTENDED_DATA_TYPE_ALTITUDE_GAIN); - } - if (altitudeLossList.stream().anyMatch(Objects::nonNull)) { - writeSimpleArrayData(altitudeLossList, EXTENDED_DATA_TYPE_ALTITUDE_LOSS); - } + if (distanceList.stream().anyMatch(Objects::nonNull)) { + writeSimpleArrayData(distanceList, EXTENDED_DATA_TYPE_DISTANCE); + } + if (powerList.stream().anyMatch(Objects::nonNull)) { + writeSimpleArrayData(powerList, EXTENDED_DATA_TYPE_POWER); + } + if (cadenceList.stream().anyMatch(Objects::nonNull)) { + writeSimpleArrayData(cadenceList, EXTENDED_DATA_TYPE_CADENCE); + } + if (heartRateList.stream().anyMatch(Objects::nonNull)) { + writeSimpleArrayData(heartRateList, EXTENDED_DATA_TYPE_HEART_RATE); + } + if (altitudeGainList.stream().anyMatch(Objects::nonNull)) { + writeSimpleArrayData(altitudeGainList, EXTENDED_DATA_TYPE_ALTITUDE_GAIN); + } + if (altitudeLossList.stream().anyMatch(Objects::nonNull)) { + writeSimpleArrayData(altitudeLossList, EXTENDED_DATA_TYPE_ALTITUDE_LOSS); } printWriter.println(""); printWriter.println(""); @@ -386,9 +362,7 @@ public class KMLTrackExporter implements TrackExporter { @VisibleForTesting void writeTrackPoint(TrackPoint trackPoint) { if (printWriter != null) { - if (exportTrackDetail) { - printWriter.println("" + getTime(trackPoint.getLocation()) + ""); - } + printWriter.println("" + getTime(trackPoint.getLocation()) + ""); if (trackPoint.hasLocation()) { printWriter.println("" + (trackPoint.hasLocation() ? getCoordinates(trackPoint.getLocation(), " ") : "") + ""); @@ -397,15 +371,13 @@ public class KMLTrackExporter implements TrackExporter { } speedList.add(trackPoint.hasSpeed() ? (float) trackPoint.getSpeed().toMPS() : null); - if (exportSensorData) { - distanceList.add(trackPoint.hasSensorDistance() ? (float) trackPoint.getSensorDistance().toM() : null); - heartRateList.add(trackPoint.hasHeartRate() ? trackPoint.getHeartRate_bpm() : null); - cadenceList.add(trackPoint.hasCyclingCadence() ? trackPoint.getCyclingCadence_rpm() : null); - powerList.add(trackPoint.hasPower() ? trackPoint.getPower() : null); + distanceList.add(trackPoint.hasSensorDistance() ? (float) trackPoint.getSensorDistance().toM() : null); + heartRateList.add(trackPoint.hasHeartRate() ? trackPoint.getHeartRate_bpm() : null); + cadenceList.add(trackPoint.hasCyclingCadence() ? trackPoint.getCyclingCadence_rpm() : null); + powerList.add(trackPoint.hasPower() ? trackPoint.getPower() : null); - altitudeGainList.add(trackPoint.hasAltitudeGain() ? trackPoint.getAltitudeGain() : null); - altitudeLossList.add(trackPoint.hasAltitudeLoss() ? trackPoint.getAltitudeLoss() : null); - } + altitudeGainList.add(trackPoint.hasAltitudeGain() ? trackPoint.getAltitudeGain() : null); + altitudeLossList.add(trackPoint.hasAltitudeLoss() ? trackPoint.getAltitudeLoss() : null); } } @@ -438,7 +410,7 @@ public class KMLTrackExporter implements TrackExporter { * @param location the location */ private void writePlacemark(String name, String category, String description, String styleName, Location location) { - if (location != null && exportTrackDetail) { + if (location != null) { printWriter.println(""); printWriter.println("" + StringUtils.formatCData(name) + ""); printWriter.println("" + StringUtils.formatCData(description) + ""); @@ -453,37 +425,35 @@ public class KMLTrackExporter implements TrackExporter { } private void writePhotoOverlay(Marker marker, float heading) { - if (exportTrackDetail) { - printWriter.println(""); - printWriter.println("" + StringUtils.formatCData(marker.getName()) + ""); - printWriter.println("" + StringUtils.formatCData(marker.getDescription()) + ""); - printWriter.print(""); - printWriter.print("" + marker.getLongitude() + ""); - printWriter.print("" + marker.getLatitude() + ""); - printWriter.print("20"); - printWriter.print("" + heading + ""); - printWriter.print("90"); - printWriter.println(""); - printWriter.println("" + getTime(marker.getLocation()) + ""); - printWriter.println("#" + MARKER_STYLE + ""); - writeCategory(marker.getCategory()); + printWriter.println(""); + printWriter.println("" + StringUtils.formatCData(marker.getName()) + ""); + printWriter.println("" + StringUtils.formatCData(marker.getDescription()) + ""); + printWriter.print(""); + printWriter.print("" + marker.getLongitude() + ""); + printWriter.print("" + marker.getLatitude() + ""); + printWriter.print("20"); + printWriter.print("" + heading + ""); + printWriter.print("90"); + printWriter.println(""); + printWriter.println("" + getTime(marker.getLocation()) + ""); + printWriter.println("#" + MARKER_STYLE + ""); + writeCategory(marker.getCategory()); - if (exportPhotos) { - printWriter.println("" + KmzTrackExporter.buildKmzImageFilePath(marker) + ""); - } - - printWriter.print(""); - printWriter.print("10"); - printWriter.print("-60"); - printWriter.print("60"); - printWriter.print("-45"); - printWriter.print("45"); - printWriter.println(""); - printWriter.println(""); - printWriter.println("" + getCoordinates(marker.getLocation(), ",") + ""); - printWriter.println(""); - printWriter.println(""); + if (exportPhotos) { + printWriter.println("" + KmzTrackExporter.buildKmzImageFilePath(marker) + ""); } + + printWriter.print(""); + printWriter.print("10"); + printWriter.print("-60"); + printWriter.print("60"); + printWriter.print("-45"); + printWriter.print("45"); + printWriter.println(""); + printWriter.println(""); + printWriter.println("" + getCoordinates(marker.getLocation(), ",") + ""); + printWriter.println(""); + printWriter.println(""); } /** @@ -492,11 +462,7 @@ public class KMLTrackExporter implements TrackExporter { * @param location the location */ private String getTime(Location location) { - if (exportTrackDetail) { - return StringUtils.formatDateTimeIso8601(Instant.ofEpochMilli(location.getTime())); - } else { - return StringUtils.formatDateTimeIso8601(Instant.ofEpochMilli(location.getTime() - startTrackPoint.getTime().toEpochMilli())); - } + return StringUtils.formatDateTimeIso8601(Instant.ofEpochMilli(location.getTime())); } /** @@ -580,17 +546,4 @@ public class KMLTrackExporter implements TrackExporter { printWriter.println("" + StringUtils.formatCData(extendedDataType) + ""); printWriter.println(""); } - - /** - * Sets a trackPoint time. - * - * @param trackPoint the trackPoint - * @param offset the time offset - */ - //TODO Why? - private void setLocationTime(TrackPoint trackPoint, Duration offset) { - if (trackPoint != null) { - trackPoint.setTime(trackPoint.getTime().minus(offset)); - } - } }