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 4983546fa..bf3520000 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
@@ -97,7 +97,7 @@ public class ExportImportTest {
Track track = contentProviderUtils.getTrack(trackId);
TrackFileFormat trackFileFormat = TrackFileFormat.KML_WITH_TRACKDETAIL;
- TrackExporter trackExporter = trackFileFormat.newTrackExporter(context, new Track[]{track}, null);
+ TrackExporter trackExporter = trackFileFormat.newTrackExporter(context, new Track[]{track});
// when
// 1. export
@@ -169,7 +169,7 @@ public class ExportImportTest {
Track track = contentProviderUtils.getTrack(trackId);
TrackFileFormat trackFileFormat = TrackFileFormat.GPX;
- TrackExporter trackExporter = trackFileFormat.newTrackExporter(context, new Track[]{track}, null);
+ TrackExporter trackExporter = trackFileFormat.newTrackExporter(context, new Track[]{track});
// when
// 1. export
diff --git a/src/androidTest/java/de/dennisguse/opentracks/util/PreferencesUtilsTest.java b/src/androidTest/java/de/dennisguse/opentracks/util/PreferencesUtilsTest.java
index 70093164e..46b9a3af6 100644
--- a/src/androidTest/java/de/dennisguse/opentracks/util/PreferencesUtilsTest.java
+++ b/src/androidTest/java/de/dennisguse/opentracks/util/PreferencesUtilsTest.java
@@ -43,7 +43,7 @@ public class PreferencesUtilsTest {
TrackFileFormat trackFileFormat = PreferencesUtils.getExportTrackFileFormat(context);
// then
- Assert.assertEquals(TrackFileFormat.KML_ONLY_TRACK, trackFileFormat);
+ Assert.assertEquals(TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA, trackFileFormat);
}
@Test
@@ -57,6 +57,6 @@ public class PreferencesUtilsTest {
TrackFileFormat trackFileFormat = PreferencesUtils.getExportTrackFileFormat(context);
// then
- Assert.assertEquals(TrackFileFormat.KML_ONLY_TRACK, trackFileFormat);
+ Assert.assertEquals(TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA, trackFileFormat);
}
}
\ No newline at end of file
diff --git a/src/main/java/de/dennisguse/opentracks/fragments/FileTypeDialogFragment.java b/src/main/java/de/dennisguse/opentracks/fragments/FileTypeDialogFragment.java
deleted file mode 100644
index 8fac538ac..000000000
--- a/src/main/java/de/dennisguse/opentracks/fragments/FileTypeDialogFragment.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*
- * Copyright 2013 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package de.dennisguse.opentracks.fragments;
-
-import android.app.AlertDialog;
-import android.app.Dialog;
-import android.content.Context;
-import android.content.DialogInterface;
-import android.content.DialogInterface.OnClickListener;
-import android.os.Bundle;
-
-import androidx.annotation.NonNull;
-import androidx.fragment.app.DialogFragment;
-import androidx.fragment.app.FragmentManager;
-
-import java.util.Locale;
-
-import de.dennisguse.opentracks.R;
-import de.dennisguse.opentracks.io.file.TrackFileFormat;
-
-/**
- * A DialogFragment to select a file type, gpx, kml, etc.
- *
- * @author Jimmy Shih
- */
-public class FileTypeDialogFragment extends DialogFragment {
-
- private static final String FILE_TYPE_DIALOG_TAG = "fileType";
- private static final String KEY_TITLE_ID = "titleId";
- private static final String KEY_OPTION_ID = "optionId";
-
- private FileTypeCaller caller;
-
- public static void showDialog(FragmentManager fragmentManager, int titleId, int optionId) {
- Bundle bundle = new Bundle();
- bundle.putInt(KEY_TITLE_ID, titleId);
- bundle.putInt(KEY_OPTION_ID, optionId);
-
- FileTypeDialogFragment fileTypeDialogFragment = new FileTypeDialogFragment();
- fileTypeDialogFragment.setArguments(bundle);
- fileTypeDialogFragment.show(fragmentManager, FILE_TYPE_DIALOG_TAG);
- }
-
- @Override
- public void onAttach(@NonNull Context context) {
- super.onAttach(context);
- try {
- caller = (FileTypeCaller) context;
- } catch (ClassCastException e) {
- throw new ClassCastException(context + " must implement " + FileTypeCaller.class.getSimpleName());
- }
- }
-
- @Override
- @NonNull
- public Dialog onCreateDialog(Bundle savedInstanceState) {
- int optionId = getArguments().getInt(KEY_OPTION_ID);
- final int titleId = getArguments().getInt(KEY_TITLE_ID);
-
- 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
- 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() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- onDismissed();
- }
- })
- .setPositiveButton(R.string.generic_ok, new OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- int position = ((AlertDialog) dialog).getListView().getCheckedItemPosition();
- caller.onFileTypeDone(trackFileFormats[position]);
- }
- })
- .setSingleChoiceItems(choices, 0, null)
- .setTitle(titleId)
- .create();
- }
-
- @Override
- public void onCancel(@NonNull DialogInterface dialog) {
- onDismissed();
- }
-
- private void onDismissed() {
- dismiss();
- caller.onDismissed();
- }
-
- /**
- * Interface for caller of this dialog fragment.
- *
- * @author Jimmy Shih
- */
- public interface FileTypeCaller {
-
- /**
- * Called when file type selection is done.
- */
- void onFileTypeDone(TrackFileFormat trackFileFormat);
-
- void onDismissed();
- }
-}
\ No newline at end of file
diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java
index a31ca7852..cb060c745 100644
--- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/ExportActivity.java
@@ -30,17 +30,17 @@ import androidx.documentfile.provider.DocumentFile;
import androidx.fragment.app.FragmentActivity;
import de.dennisguse.opentracks.R;
-import de.dennisguse.opentracks.fragments.FileTypeDialogFragment;
import de.dennisguse.opentracks.io.file.TrackFileFormat;
import de.dennisguse.opentracks.util.DialogUtils;
import de.dennisguse.opentracks.util.FileUtils;
+import de.dennisguse.opentracks.util.PreferencesUtils;
/**
* An activity for saving tracks to the external storage.
*
* @author Rodrigo Damazio
*/
-public class ExportActivity extends FragmentActivity implements FileTypeDialogFragment.FileTypeCaller {
+public class ExportActivity extends FragmentActivity {
private static final int DIRECTORY_PICKER_REQUEST_CODE = 6;
@@ -55,8 +55,6 @@ public class ExportActivity extends FragmentActivity implements FileTypeDialogFr
private int processedTrackCount;
private int totalTrackCount;
- private Uri directoryUri;
-
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -71,36 +69,24 @@ public class ExportActivity extends FragmentActivity implements FileTypeDialogFr
super.onActivityResult(requestCode, resultCode, resultData);
if (requestCode == DIRECTORY_PICKER_REQUEST_CODE) {
if (resultCode == Activity.RESULT_OK) {
- directoryUri = resultData.getData();
- fileTypeDialogStart();
+ Uri directoryUri = resultData.getData();
+ DocumentFile pickedDirectory = DocumentFile.fromTreeUri(this, directoryUri);
+ DocumentFile exportDirectory = pickedDirectory.findFile(FileUtils.EXPORT_DIR);
+ if (exportDirectory == null) {
+ exportDirectory = pickedDirectory.createDirectory(FileUtils.EXPORT_DIR);
+ }
+
+ TrackFileFormat trackFileFormat = PreferencesUtils.getExportTrackFileFormat(this);
+
+ directoryDisplayName = FileUtils.getPath(exportDirectory);
+ exportAsyncTask = new ExportAsyncTask(this, trackFileFormat, exportDirectory);
+ exportAsyncTask.execute();
} else {
finish();
}
}
}
- private void fileTypeDialogStart() {
- FileTypeDialogFragment.showDialog(getSupportFragmentManager(), R.string.export_all_title, R.string.export_all_option);
- }
-
- @Override
- public void onFileTypeDone(TrackFileFormat trackFileFormat) {
- DocumentFile pickedDirectory = DocumentFile.fromTreeUri(this, directoryUri);
- DocumentFile exportDirectory = pickedDirectory.findFile(FileUtils.EXPORT_DIR);
- if (exportDirectory == null) {
- exportDirectory = pickedDirectory.createDirectory(FileUtils.EXPORT_DIR);
- }
-
- directoryDisplayName = FileUtils.getPath(exportDirectory);
- exportAsyncTask = new ExportAsyncTask(this, trackFileFormat, exportDirectory);
- exportAsyncTask.execute();
- }
-
- @Override
- public void onDismissed() {
- finish();
- }
-
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
@@ -112,7 +98,7 @@ public class ExportActivity extends FragmentActivity implements FileTypeDialogFr
public void onCancel(DialogInterface dialog) {
exportAsyncTask.cancel(true);
dialog.dismiss();
- onDismissed();
+ finish();
}
}, directoryDisplayName);
return progressDialog;
@@ -138,13 +124,13 @@ public class ExportActivity extends FragmentActivity implements FileTypeDialogFr
@Override
public void onCancel(DialogInterface dialog) {
dialog.dismiss();
- onDismissed();
+ finish();
}
}).setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int arg1) {
dialog.dismiss();
- onDismissed();
+ finish();
}
}).setTitle(titleId);
return builder.create();
diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportActivity.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportActivity.java
index f33f3ea34..b09a20e88 100644
--- a/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportActivity.java
+++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/ImportActivity.java
@@ -30,17 +30,17 @@ import androidx.documentfile.provider.DocumentFile;
import androidx.fragment.app.FragmentActivity;
import de.dennisguse.opentracks.R;
-import de.dennisguse.opentracks.fragments.FileTypeDialogFragment;
import de.dennisguse.opentracks.io.file.TrackFileFormat;
import de.dennisguse.opentracks.util.DialogUtils;
import de.dennisguse.opentracks.util.FileUtils;
+import de.dennisguse.opentracks.util.PreferencesUtils;
/**
* An activity to import files from the external storage.
*
* @author Rodrigo Damazio
*/
-public class ImportActivity extends FragmentActivity implements FileTypeDialogFragment.FileTypeCaller {
+public class ImportActivity extends FragmentActivity {
private static final int DIRECTORY_PICKER_REQUEST_CODE = 6;
@@ -55,8 +55,6 @@ public class ImportActivity extends FragmentActivity implements FileTypeDialogFr
private int importedTrackCount;
private int totalTrackCount;
- private Uri directoryUri;
-
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -72,34 +70,20 @@ public class ImportActivity extends FragmentActivity implements FileTypeDialogFr
super.onActivityResult(requestCode, resultCode, resultData);
if (requestCode == DIRECTORY_PICKER_REQUEST_CODE) {
if (resultCode == Activity.RESULT_OK) {
- directoryUri = resultData.getData();
- fileTypeDialogStart();
+ Uri directoryUri = resultData.getData();
+ DocumentFile pickedDirectory = DocumentFile.fromTreeUri(this, directoryUri);
+
+ directoryDisplayName = FileUtils.getPath(pickedDirectory);
+ TrackFileFormat trackFileFormat = PreferencesUtils.getExportTrackFileFormat(this);
+
+ importAsyncTask = new ImportAsyncTask(this, trackFileFormat, pickedDirectory);
+ importAsyncTask.execute();
} else {
finish();
}
}
}
-
- private void fileTypeDialogStart() {
- FileTypeDialogFragment.showDialog(getSupportFragmentManager(), R.string.import_selection_title, R.string.import_selection_option);
- }
-
- @Override
- public void onFileTypeDone(TrackFileFormat trackFileFormat) {
- DocumentFile pickedDirectory = DocumentFile.fromTreeUri(this, directoryUri);
-
- directoryDisplayName = FileUtils.getPath(pickedDirectory);
-
- importAsyncTask = new ImportAsyncTask(this, trackFileFormat, pickedDirectory);
- importAsyncTask.execute();
- }
-
- @Override
- public void onDismissed() {
- finish();
- }
-
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
@@ -110,7 +94,7 @@ public class ImportActivity extends FragmentActivity implements FileTypeDialogFr
public void onCancel(DialogInterface dialog) {
importAsyncTask.cancel(true);
dialog.dismiss();
- onDismissed();
+ finish();
}
}, directoryDisplayName);
return progressDialog;
@@ -140,13 +124,13 @@ public class ImportActivity extends FragmentActivity implements FileTypeDialogFr
@Override
public void onCancel(DialogInterface dialogInterface) {
dialogInterface.dismiss();
- onDismissed();
+ finish();
}
}).setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int which) {
dialogInterface.dismiss();
- onDismissed();
+ finish();
}
}).setTitle(titleId).create();
default:
diff --git a/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java b/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java
index 776665f09..f88914259 100644
--- a/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java
+++ b/src/main/java/de/dennisguse/opentracks/util/PreferencesUtils.java
@@ -322,11 +322,12 @@ public class PreferencesUtils {
}
public static TrackFileFormat getExportTrackFileFormat(Context context) {
- String trackFileFormatName = getString(context, R.string.export_trackfileformat_key, null);
+ final String TRACKFILEFORMAT_NAME_DEFAULT = getString(context, R.string.export_trackfileformat_default, null);
+ String trackFileFormatName = getString(context, R.string.export_trackfileformat_key, TRACKFILEFORMAT_NAME_DEFAULT);
try {
return TrackFileFormat.valueOf(trackFileFormatName);
} catch (Exception e) {
- return TrackFileFormat.KML_ONLY_TRACK;
+ return TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA;
}
}
diff --git a/src/main/res/values/settings.xml b/src/main/res/values/settings.xml
index 4743595c7..4888a7cbc 100644
--- a/src/main/res/values/settings.xml
+++ b/src/main/res/values/settings.xml
@@ -221,6 +221,8 @@
exportTrackFileFormat
+
+ KMZ_WITH_TRACKDETAIL_AND_SENSORDATA
settingsRecordingKey
\ No newline at end of file
diff --git a/src/main/res/xml/settings.xml b/src/main/res/xml/settings.xml
index ce0b52f8d..051073bab 100644
--- a/src/main/res/xml/settings.xml
+++ b/src/main/res/xml/settings.xml
@@ -144,6 +144,7 @@ limitations under the License.
android:targetPackage="@string/applicationId" />