diff --git a/src/main/java/de/dennisguse/opentracks/fragments/FileTypeDialogFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/FileTypeDialogFragment.java
index 830595df7..0852f71f7 100644
--- a/src/main/java/de/dennisguse/opentracks/fragments/FileTypeDialogFragment.java
+++ b/src/main/java/de/dennisguse/opentracks/fragments/FileTypeDialogFragment.java
@@ -67,12 +67,14 @@ public class FileTypeDialogFragment extends DialogFragment {
@Override
@NonNull
public Dialog onCreateDialog(Bundle savedInstanceState) {
- final TrackFileFormat[] trackFileFormats = {TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA_AND_PICTURES, TrackFileFormat.KML_WITH_TRACKDETAIL_AND_SENSORDATA, TrackFileFormat.GPX};
+ final TrackFileFormat[] trackFileFormats = {TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA_AND_PICTURES, TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA, TrackFileFormat.KML_WITH_TRACKDETAIL_AND_SENSORDATA, TrackFileFormat.GPX};
String[] choices = new String[trackFileFormats.length];
for (int i = 0; i < choices.length; i++) {
TrackFileFormat trackFileFormat = trackFileFormats[i];
String trackFileFormatUpperCase = trackFileFormat.getExtension().toUpperCase(Locale.US); //ASCII upper case
- choices[i] = getString(optionId, trackFileFormatUpperCase);
+ int photoMessageId = trackFileFormat.includesPhotos() ? R.string.export_with_photos : R.string.export_without_photos;
+ String trackFileFormatDisplayName = String.format("%s (%s)", trackFileFormatUpperCase, getString(photoMessageId));
+ choices[i] = getString(optionId, trackFileFormatDisplayName);
}
return new AlertDialog.Builder(getActivity())
.setNegativeButton(R.string.generic_cancel, new OnClickListener() {
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 da48a9001..2f11db441 100644
--- a/src/main/java/de/dennisguse/opentracks/io/file/TrackFileFormat.java
+++ b/src/main/java/de/dennisguse/opentracks/io/file/TrackFileFormat.java
@@ -86,6 +86,11 @@ public enum TrackFileFormat {
public String getExtension() {
return "kmz";
}
+
+ @Override
+ public boolean includesPhotos() {
+ return exportPhotos;
+ }
},
KMZ_WITH_TRACKDETAIL {
@@ -108,6 +113,12 @@ public enum TrackFileFormat {
public String getExtension() {
return "kmz";
}
+
+ @Override
+ public boolean includesPhotos() {
+ return exportPhotos;
+ }
+
},
KMZ_WITH_TRACKDETAIL_AND_SENSORDATA {
@@ -130,6 +141,13 @@ public enum TrackFileFormat {
public String getExtension() {
return "kmz";
}
+
+ @Override
+ public boolean includesPhotos() {
+ return exportPhotos;
+ }
+
+
},
KMZ_WITH_TRACKDETAIL_AND_SENSORDATA_AND_PICTURES {
@@ -152,6 +170,12 @@ public enum TrackFileFormat {
public String getExtension() {
return "kmz";
}
+
+ @Override
+ public boolean includesPhotos() {
+ return exportPhotos;
+ }
+
},
GPX {
@Override
@@ -205,6 +229,11 @@ public enum TrackFileFormat {
*/
public abstract String getExtension();
+ /**
+ * Returns whether the format supports photos.
+ */
+ public boolean includesPhotos() { return false; };
+
/**
* Returns the name of for each format.
*/
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index a03687224..65db3b268 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -167,6 +167,8 @@ At the moment, the recorded locations as well as the timestamps are send to an A
All as %1$s
Export to external storage
+ with photos
+ without photos
External storage
Exported %1$d of %2$s to %3$s
as %1$s to %2$s