forked from upstream-mirrors/OpenTracks
Export/Import: TrackFileFormat is now selected via settings only.
This commit is contained in:
+2
-2
@@ -97,7 +97,7 @@ public class ExportImportTest {
|
|||||||
Track track = contentProviderUtils.getTrack(trackId);
|
Track track = contentProviderUtils.getTrack(trackId);
|
||||||
|
|
||||||
TrackFileFormat trackFileFormat = TrackFileFormat.KML_WITH_TRACKDETAIL;
|
TrackFileFormat trackFileFormat = TrackFileFormat.KML_WITH_TRACKDETAIL;
|
||||||
TrackExporter trackExporter = trackFileFormat.newTrackExporter(context, new Track[]{track}, null);
|
TrackExporter trackExporter = trackFileFormat.newTrackExporter(context, new Track[]{track});
|
||||||
|
|
||||||
// when
|
// when
|
||||||
// 1. export
|
// 1. export
|
||||||
@@ -169,7 +169,7 @@ public class ExportImportTest {
|
|||||||
Track track = contentProviderUtils.getTrack(trackId);
|
Track track = contentProviderUtils.getTrack(trackId);
|
||||||
|
|
||||||
TrackFileFormat trackFileFormat = TrackFileFormat.GPX;
|
TrackFileFormat trackFileFormat = TrackFileFormat.GPX;
|
||||||
TrackExporter trackExporter = trackFileFormat.newTrackExporter(context, new Track[]{track}, null);
|
TrackExporter trackExporter = trackFileFormat.newTrackExporter(context, new Track[]{track});
|
||||||
|
|
||||||
// when
|
// when
|
||||||
// 1. export
|
// 1. export
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public class PreferencesUtilsTest {
|
|||||||
TrackFileFormat trackFileFormat = PreferencesUtils.getExportTrackFileFormat(context);
|
TrackFileFormat trackFileFormat = PreferencesUtils.getExportTrackFileFormat(context);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
Assert.assertEquals(TrackFileFormat.KML_ONLY_TRACK, trackFileFormat);
|
Assert.assertEquals(TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA, trackFileFormat);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -57,6 +57,6 @@ public class PreferencesUtilsTest {
|
|||||||
TrackFileFormat trackFileFormat = PreferencesUtils.getExportTrackFileFormat(context);
|
TrackFileFormat trackFileFormat = PreferencesUtils.getExportTrackFileFormat(context);
|
||||||
|
|
||||||
// then
|
// then
|
||||||
Assert.assertEquals(TrackFileFormat.KML_ONLY_TRACK, trackFileFormat);
|
Assert.assertEquals(TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA, trackFileFormat);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -30,17 +30,17 @@ import androidx.documentfile.provider.DocumentFile;
|
|||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
|
|
||||||
import de.dennisguse.opentracks.R;
|
import de.dennisguse.opentracks.R;
|
||||||
import de.dennisguse.opentracks.fragments.FileTypeDialogFragment;
|
|
||||||
import de.dennisguse.opentracks.io.file.TrackFileFormat;
|
import de.dennisguse.opentracks.io.file.TrackFileFormat;
|
||||||
import de.dennisguse.opentracks.util.DialogUtils;
|
import de.dennisguse.opentracks.util.DialogUtils;
|
||||||
import de.dennisguse.opentracks.util.FileUtils;
|
import de.dennisguse.opentracks.util.FileUtils;
|
||||||
|
import de.dennisguse.opentracks.util.PreferencesUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An activity for saving tracks to the external storage.
|
* An activity for saving tracks to the external storage.
|
||||||
*
|
*
|
||||||
* @author Rodrigo Damazio
|
* @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;
|
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 processedTrackCount;
|
||||||
private int totalTrackCount;
|
private int totalTrackCount;
|
||||||
|
|
||||||
private Uri directoryUri;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@@ -71,36 +69,24 @@ public class ExportActivity extends FragmentActivity implements FileTypeDialogFr
|
|||||||
super.onActivityResult(requestCode, resultCode, resultData);
|
super.onActivityResult(requestCode, resultCode, resultData);
|
||||||
if (requestCode == DIRECTORY_PICKER_REQUEST_CODE) {
|
if (requestCode == DIRECTORY_PICKER_REQUEST_CODE) {
|
||||||
if (resultCode == Activity.RESULT_OK) {
|
if (resultCode == Activity.RESULT_OK) {
|
||||||
directoryUri = resultData.getData();
|
Uri directoryUri = resultData.getData();
|
||||||
fileTypeDialogStart();
|
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 {
|
} else {
|
||||||
finish();
|
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
|
@Override
|
||||||
protected Dialog onCreateDialog(int id) {
|
protected Dialog onCreateDialog(int id) {
|
||||||
switch (id) {
|
switch (id) {
|
||||||
@@ -112,7 +98,7 @@ public class ExportActivity extends FragmentActivity implements FileTypeDialogFr
|
|||||||
public void onCancel(DialogInterface dialog) {
|
public void onCancel(DialogInterface dialog) {
|
||||||
exportAsyncTask.cancel(true);
|
exportAsyncTask.cancel(true);
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
onDismissed();
|
finish();
|
||||||
}
|
}
|
||||||
}, directoryDisplayName);
|
}, directoryDisplayName);
|
||||||
return progressDialog;
|
return progressDialog;
|
||||||
@@ -138,13 +124,13 @@ public class ExportActivity extends FragmentActivity implements FileTypeDialogFr
|
|||||||
@Override
|
@Override
|
||||||
public void onCancel(DialogInterface dialog) {
|
public void onCancel(DialogInterface dialog) {
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
onDismissed();
|
finish();
|
||||||
}
|
}
|
||||||
}).setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
|
}).setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int arg1) {
|
public void onClick(DialogInterface dialog, int arg1) {
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
onDismissed();
|
finish();
|
||||||
}
|
}
|
||||||
}).setTitle(titleId);
|
}).setTitle(titleId);
|
||||||
return builder.create();
|
return builder.create();
|
||||||
|
|||||||
@@ -30,17 +30,17 @@ import androidx.documentfile.provider.DocumentFile;
|
|||||||
import androidx.fragment.app.FragmentActivity;
|
import androidx.fragment.app.FragmentActivity;
|
||||||
|
|
||||||
import de.dennisguse.opentracks.R;
|
import de.dennisguse.opentracks.R;
|
||||||
import de.dennisguse.opentracks.fragments.FileTypeDialogFragment;
|
|
||||||
import de.dennisguse.opentracks.io.file.TrackFileFormat;
|
import de.dennisguse.opentracks.io.file.TrackFileFormat;
|
||||||
import de.dennisguse.opentracks.util.DialogUtils;
|
import de.dennisguse.opentracks.util.DialogUtils;
|
||||||
import de.dennisguse.opentracks.util.FileUtils;
|
import de.dennisguse.opentracks.util.FileUtils;
|
||||||
|
import de.dennisguse.opentracks.util.PreferencesUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An activity to import files from the external storage.
|
* An activity to import files from the external storage.
|
||||||
*
|
*
|
||||||
* @author Rodrigo Damazio
|
* @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;
|
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 importedTrackCount;
|
||||||
private int totalTrackCount;
|
private int totalTrackCount;
|
||||||
|
|
||||||
private Uri directoryUri;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@@ -72,34 +70,20 @@ public class ImportActivity extends FragmentActivity implements FileTypeDialogFr
|
|||||||
super.onActivityResult(requestCode, resultCode, resultData);
|
super.onActivityResult(requestCode, resultCode, resultData);
|
||||||
if (requestCode == DIRECTORY_PICKER_REQUEST_CODE) {
|
if (requestCode == DIRECTORY_PICKER_REQUEST_CODE) {
|
||||||
if (resultCode == Activity.RESULT_OK) {
|
if (resultCode == Activity.RESULT_OK) {
|
||||||
directoryUri = resultData.getData();
|
Uri directoryUri = resultData.getData();
|
||||||
fileTypeDialogStart();
|
DocumentFile pickedDirectory = DocumentFile.fromTreeUri(this, directoryUri);
|
||||||
|
|
||||||
|
directoryDisplayName = FileUtils.getPath(pickedDirectory);
|
||||||
|
TrackFileFormat trackFileFormat = PreferencesUtils.getExportTrackFileFormat(this);
|
||||||
|
|
||||||
|
importAsyncTask = new ImportAsyncTask(this, trackFileFormat, pickedDirectory);
|
||||||
|
importAsyncTask.execute();
|
||||||
} else {
|
} else {
|
||||||
finish();
|
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
|
@Override
|
||||||
protected Dialog onCreateDialog(int id) {
|
protected Dialog onCreateDialog(int id) {
|
||||||
switch (id) {
|
switch (id) {
|
||||||
@@ -110,7 +94,7 @@ public class ImportActivity extends FragmentActivity implements FileTypeDialogFr
|
|||||||
public void onCancel(DialogInterface dialog) {
|
public void onCancel(DialogInterface dialog) {
|
||||||
importAsyncTask.cancel(true);
|
importAsyncTask.cancel(true);
|
||||||
dialog.dismiss();
|
dialog.dismiss();
|
||||||
onDismissed();
|
finish();
|
||||||
}
|
}
|
||||||
}, directoryDisplayName);
|
}, directoryDisplayName);
|
||||||
return progressDialog;
|
return progressDialog;
|
||||||
@@ -140,13 +124,13 @@ public class ImportActivity extends FragmentActivity implements FileTypeDialogFr
|
|||||||
@Override
|
@Override
|
||||||
public void onCancel(DialogInterface dialogInterface) {
|
public void onCancel(DialogInterface dialogInterface) {
|
||||||
dialogInterface.dismiss();
|
dialogInterface.dismiss();
|
||||||
onDismissed();
|
finish();
|
||||||
}
|
}
|
||||||
}).setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
|
}).setPositiveButton(R.string.generic_ok, new DialogInterface.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialogInterface, int which) {
|
public void onClick(DialogInterface dialogInterface, int which) {
|
||||||
dialogInterface.dismiss();
|
dialogInterface.dismiss();
|
||||||
onDismissed();
|
finish();
|
||||||
}
|
}
|
||||||
}).setTitle(titleId).create();
|
}).setTitle(titleId).create();
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -322,11 +322,12 @@ public class PreferencesUtils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static TrackFileFormat getExportTrackFileFormat(Context context) {
|
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 {
|
try {
|
||||||
return TrackFileFormat.valueOf(trackFileFormatName);
|
return TrackFileFormat.valueOf(trackFileFormatName);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return TrackFileFormat.KML_ONLY_TRACK;
|
return TrackFileFormat.KMZ_WITH_TRACKDETAIL_AND_SENSORDATA;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -221,6 +221,8 @@
|
|||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string name="export_trackfileformat_key" translatable="false">exportTrackFileFormat</string>
|
<string name="export_trackfileformat_key" translatable="false">exportTrackFileFormat</string>
|
||||||
|
<!-- See TrackFileFormat -->
|
||||||
|
<string name="export_trackfileformat_default" translatable="false">KMZ_WITH_TRACKDETAIL_AND_SENSORDATA</string>
|
||||||
|
|
||||||
<string name="settings_recording_key" translatable="false">settingsRecordingKey</string>
|
<string name="settings_recording_key" translatable="false">settingsRecordingKey</string>
|
||||||
</resources>
|
</resources>
|
||||||
@@ -144,6 +144,7 @@ limitations under the License.
|
|||||||
android:targetPackage="@string/applicationId" />
|
android:targetPackage="@string/applicationId" />
|
||||||
</Preference>
|
</Preference>
|
||||||
<ListPreference
|
<ListPreference
|
||||||
|
android:defaultValue="@string/export_trackfileformat_default"
|
||||||
android:key="@string/export_trackfileformat_key"
|
android:key="@string/export_trackfileformat_key"
|
||||||
android:title="@string/settings_default_trackfileformat"
|
android:title="@string/settings_default_trackfileformat"
|
||||||
app:useSimpleSummaryProvider="true" />
|
app:useSimpleSummaryProvider="true" />
|
||||||
|
|||||||
Reference in New Issue
Block a user