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 3045ce675..d67cda5cd 100644
--- a/src/main/java/de/dennisguse/opentracks/io/file/TrackFileFormat.java
+++ b/src/main/java/de/dennisguse/opentracks/io/file/TrackFileFormat.java
@@ -4,13 +4,12 @@ import android.content.Context;
import android.os.Parcel;
import android.os.Parcelable;
+import java.util.Locale;
+
+import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.io.file.exporter.GpxTrackWriter;
import de.dennisguse.opentracks.io.file.exporter.KmlTrackWriter;
-import de.dennisguse.opentracks.io.file.exporter.KmzTrackExporter;
import de.dennisguse.opentracks.io.file.exporter.TrackWriter;
-import de.dennisguse.opentracks.R;
-
-import java.util.Locale;
/**
* Definition of all possible track formats.
@@ -18,13 +17,19 @@ import java.util.Locale;
public enum TrackFileFormat implements Parcelable {
KML {
@Override
- public TrackWriter newTrackWriter(Context context, boolean multiple, boolean playTrack) {
- return new KmlTrackWriter(context, multiple, playTrack);
+ public TrackWriter newTrackWriter(Context context, boolean multiple) {
+ return new KmlTrackWriter(context, multiple, false);
+ }
+ },
+ KMZ {
+ @Override
+ public TrackWriter newTrackWriter(Context context, boolean multiple) {
+ return new KmlTrackWriter(context, multiple, true);
}
},
GPX {
@Override
- public TrackWriter newTrackWriter(Context context, boolean multiple, boolean playTrack) {
+ public TrackWriter newTrackWriter(Context context, boolean multiple) {
return new GpxTrackWriter(context.getString(R.string.app_name));
}
};
@@ -56,9 +61,8 @@ public enum TrackFileFormat implements Parcelable {
*
* @param context the context
* @param multiple true for writing multiple tracks
- * @param playTrack true to play track
*/
- public abstract TrackWriter newTrackWriter(Context context, boolean multiple, boolean playTrack);
+ public abstract TrackWriter newTrackWriter(Context context, boolean multiple);
/**
* Returns the mime type for each format.
diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/KmlTrackWriter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/KmlTrackWriter.java
index 72563e3f3..359c2e906 100644
--- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/KmlTrackWriter.java
+++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/KmlTrackWriter.java
@@ -22,6 +22,12 @@ import android.net.Uri;
import androidx.annotation.VisibleForTesting;
+import java.io.File;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.DescriptionGenerator;
import de.dennisguse.opentracks.content.DescriptionGeneratorImpl;
@@ -32,12 +38,6 @@ import de.dennisguse.opentracks.content.Waypoint.WaypointType;
import de.dennisguse.opentracks.content.sensor.SensorDataSet;
import de.dennisguse.opentracks.io.file.TrackFileFormat;
import de.dennisguse.opentracks.util.StringUtils;
-import de.dennisguse.opentracks.R;
-
-import java.io.File;
-import java.io.OutputStream;
-import java.io.PrintWriter;
-import java.util.ArrayList;
/**
* Write track as KML to a file.
@@ -64,7 +64,7 @@ public class KmlTrackWriter implements TrackWriter {
private final Context context;
private final boolean multiple;
- private final boolean playTrack;
+ private final boolean isKMZ;
private final DescriptionGenerator descriptionGenerator;
private final ContentProviderUtils contentProviderUtils;
@@ -76,15 +76,15 @@ public class KmlTrackWriter implements TrackWriter {
private boolean hasCadence;
private boolean hasHeartRate;
- public KmlTrackWriter(Context context, boolean multiple, boolean playTrack) {
- this(context, multiple, playTrack, new DescriptionGeneratorImpl(context));
+ public KmlTrackWriter(Context context, boolean multiple, boolean isKMZ) {
+ this(context, multiple, isKMZ, new DescriptionGeneratorImpl(context));
}
@VisibleForTesting
- KmlTrackWriter(Context context, boolean multiple, boolean playTrack, DescriptionGenerator descriptionGenerator) {
+ KmlTrackWriter(Context context, boolean multiple, boolean isKMZ, DescriptionGenerator descriptionGenerator) {
this.context = context;
this.multiple = multiple;
- this.playTrack = playTrack;
+ this.isKMZ = isKMZ;
this.descriptionGenerator = descriptionGenerator;
this.contentProviderUtils = ContentProviderUtils.Factory.get(context);
}
@@ -333,7 +333,8 @@ public class KmlTrackWriter implements TrackWriter {
printWriter.println("" + StringUtils.formatDateTimeIso8601(location.getTime()) + "");
printWriter.println("#" + styleName + "");
writeCategory(category);
- if (playTrack) {
+
+ if (isKMZ) {
printWriter.println("" + Uri.decode(photoUrl) + "");
} else {
Uri uri = Uri.parse(photoUrl);
diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/SaveActivity.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/SaveActivity.java
index 2fe06fbb1..661f6da89 100644
--- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/SaveActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/SaveActivity.java
@@ -25,13 +25,13 @@ import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
+import java.io.File;
+
+import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.io.file.TrackFileFormat;
import de.dennisguse.opentracks.util.DialogUtils;
import de.dennisguse.opentracks.util.FileUtils;
import de.dennisguse.opentracks.util.IntentUtils;
-import de.dennisguse.opentracks.R;
-
-import java.io.File;
/**
* An activity for saving tracks to the external storage. If saving a specific
@@ -102,7 +102,7 @@ public class SaveActivity extends Activity {
saveAsyncTask = (SaveAsyncTask) retained;
saveAsyncTask.setActivity(this);
} else {
- saveAsyncTask = new SaveAsyncTask(this, trackIds, trackFileFormat, playTrack, directory);
+ saveAsyncTask = new SaveAsyncTask(this, trackIds, trackFileFormat, directory);
saveAsyncTask.execute();
}
}
diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/SaveAsyncTask.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/SaveAsyncTask.java
index 8a91d28ea..c1b866ed7 100644
--- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/SaveAsyncTask.java
+++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/SaveAsyncTask.java
@@ -22,6 +22,12 @@ import android.os.AsyncTask;
import android.os.PowerManager.WakeLock;
import android.util.Log;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import de.dennisguse.opentracks.R;
import de.dennisguse.opentracks.content.ContentProviderUtils;
import de.dennisguse.opentracks.content.Track;
import de.dennisguse.opentracks.content.TracksColumns;
@@ -29,12 +35,6 @@ import de.dennisguse.opentracks.io.file.TrackFileFormat;
import de.dennisguse.opentracks.util.FileUtils;
import de.dennisguse.opentracks.util.PreferencesUtils;
import de.dennisguse.opentracks.util.SystemUtils;
-import de.dennisguse.opentracks.R;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
/**
* Async Task to save tracks to the external storage.
@@ -46,8 +46,6 @@ public class SaveAsyncTask extends AsyncTask {
private static final String TAG = SaveAsyncTask.class.getSimpleName();
private final long[] trackIds;
private final TrackFileFormat trackFileFormat;
- @Deprecated //TODO Seems to be a left over from Google Earth integration and can be removed.
- private final boolean playTrack;
private final File directory;
private final Context context;
private final ContentProviderUtils contentProviderUtils;
@@ -73,14 +71,12 @@ public class SaveAsyncTask extends AsyncTask {
* @param trackIds the track ids to save. To save all, set to size 1 with
* trackIds[0] == -1L
* @param trackFileFormat the track file format
- * @param playTrack true to play track
* @param directory the directory to write the file
*/
- public SaveAsyncTask(SaveActivity saveActivity, long[] trackIds, TrackFileFormat trackFileFormat, boolean playTrack, File directory) {
+ public SaveAsyncTask(SaveActivity saveActivity, long[] trackIds, TrackFileFormat trackFileFormat, File directory) {
this.saveActivity = saveActivity;
this.trackIds = trackIds;
this.trackFileFormat = trackFileFormat;
- this.playTrack = playTrack;
this.directory = directory;
context = saveActivity.getApplicationContext();
contentProviderUtils = ContentProviderUtils.Factory.get(context);
@@ -180,10 +176,8 @@ public class SaveAsyncTask extends AsyncTask {
}
Track track = tracks[0];
- boolean useKmz = trackFileFormat == TrackFileFormat.KML && !playTrack;
- String extension = useKmz ? KmzTrackExporter.KMZ_EXTENSION : trackFileFormat.getExtension();
FileTrackExporter fileTrackExporter = new FileTrackExporter(contentProviderUtils, tracks,
- trackFileFormat.newTrackWriter(context, tracks.length > 1, playTrack),
+ trackFileFormat.newTrackWriter(context, tracks.length > 1),
new TrackExporterListener() {
@Override
@@ -197,7 +191,8 @@ public class SaveAsyncTask extends AsyncTask {
}
}
});
-
+ boolean useKmz = trackFileFormat == TrackFileFormat.KMZ;
+ String extension = useKmz ? KmzTrackExporter.KMZ_EXTENSION : trackFileFormat.getExtension();
TrackExporter trackExporter = useKmz ? new KmzTrackExporter(contentProviderUtils, fileTrackExporter, tracks) : fileTrackExporter;
String fileName = FileUtils.buildUniqueFileName(directory, track.getName(), extension);