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