diff --git a/MyTracks/AndroidManifest.xml b/MyTracks/AndroidManifest.xml
index e42d76c1f..015c9746e 100755
--- a/MyTracks/AndroidManifest.xml
+++ b/MyTracks/AndroidManifest.xml
@@ -150,7 +150,7 @@ limitations under the License.
-
+
diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java
index 0cb2d9468..d75977178 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/TrackDetailActivity.java
@@ -32,7 +32,7 @@ import com.google.android.apps.mytracks.fragments.InstallEarthDialogFragment;
import com.google.android.apps.mytracks.fragments.MyTracksMapFragment;
import com.google.android.apps.mytracks.fragments.StatsFragment;
import com.google.android.apps.mytracks.io.file.SaveActivity;
-import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileFormat;
+import com.google.android.apps.mytracks.io.file.TrackFileFormat;
import com.google.android.apps.mytracks.io.sendtogoogle.SendRequest;
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
import com.google.android.apps.mytracks.settings.SettingsActivity;
diff --git a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java
index 74f62a1c2..363d1352e 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/TrackListActivity.java
@@ -27,8 +27,9 @@ import com.google.android.apps.mytracks.fragments.DeleteOneTrackDialogFragment;
import com.google.android.apps.mytracks.fragments.DeleteOneTrackDialogFragment.DeleteOneTrackCaller;
import com.google.android.apps.mytracks.fragments.EulaDialogFragment;
import com.google.android.apps.mytracks.fragments.WelcomeDialogFragment;
+import com.google.android.apps.mytracks.io.file.ImportActivity;
import com.google.android.apps.mytracks.io.file.SaveActivity;
-import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileFormat;
+import com.google.android.apps.mytracks.io.file.TrackFileFormat;
import com.google.android.apps.mytracks.services.ITrackRecordingService;
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
import com.google.android.apps.mytracks.settings.SettingsActivity;
diff --git a/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmPlayDialogFragment.java b/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmPlayDialogFragment.java
index bbdefd619..5b2d3dcf9 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmPlayDialogFragment.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/fragments/ConfirmPlayDialogFragment.java
@@ -17,7 +17,7 @@
package com.google.android.apps.mytracks.fragments;
import com.google.android.apps.mytracks.io.file.SaveActivity;
-import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileFormat;
+import com.google.android.apps.mytracks.io.file.TrackFileFormat;
import com.google.android.apps.mytracks.util.AnalyticsUtils;
import com.google.android.apps.mytracks.util.IntentUtils;
import com.google.android.apps.mytracks.util.PreferencesUtils;
diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/file/CsvTrackWriter.java b/MyTracks/src/com/google/android/apps/mytracks/io/file/CsvTrackWriter.java
index 0cc194a40..641b24d72 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/io/file/CsvTrackWriter.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/io/file/CsvTrackWriter.java
@@ -21,7 +21,6 @@ import com.google.android.apps.mytracks.content.Sensor.SensorData;
import com.google.android.apps.mytracks.content.Sensor.SensorDataSet;
import com.google.android.apps.mytracks.content.Track;
import com.google.android.apps.mytracks.content.Waypoint;
-import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileFormat;
import com.google.android.apps.mytracks.util.StringUtils;
import com.google.android.maps.mytracks.R;
diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/file/GpxTrackWriter.java b/MyTracks/src/com/google/android/apps/mytracks/io/file/GpxTrackWriter.java
index 673593786..ab61e4140 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/io/file/GpxTrackWriter.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/io/file/GpxTrackWriter.java
@@ -18,7 +18,6 @@ package com.google.android.apps.mytracks.io.file;
import com.google.android.apps.mytracks.content.Track;
import com.google.android.apps.mytracks.content.Waypoint;
-import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileFormat;
import com.google.android.apps.mytracks.util.StringUtils;
import com.google.android.maps.mytracks.R;
diff --git a/MyTracks/src/com/google/android/apps/mytracks/ImportActivity.java b/MyTracks/src/com/google/android/apps/mytracks/io/file/ImportActivity.java
similarity index 98%
rename from MyTracks/src/com/google/android/apps/mytracks/ImportActivity.java
rename to MyTracks/src/com/google/android/apps/mytracks/io/file/ImportActivity.java
index 9f59dbc59..e9b747c72 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/ImportActivity.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/io/file/ImportActivity.java
@@ -14,8 +14,9 @@
* the License.
*/
-package com.google.android.apps.mytracks;
+package com.google.android.apps.mytracks.io.file;
+import com.google.android.apps.mytracks.TrackDetailActivity;
import com.google.android.apps.mytracks.util.DialogUtils;
import com.google.android.apps.mytracks.util.FileUtils;
import com.google.android.apps.mytracks.util.IntentUtils;
diff --git a/MyTracks/src/com/google/android/apps/mytracks/ImportAsyncTask.java b/MyTracks/src/com/google/android/apps/mytracks/io/file/ImportAsyncTask.java
similarity index 98%
rename from MyTracks/src/com/google/android/apps/mytracks/ImportAsyncTask.java
rename to MyTracks/src/com/google/android/apps/mytracks/io/file/ImportAsyncTask.java
index d86a83d81..0b714b4d7 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/ImportAsyncTask.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/io/file/ImportAsyncTask.java
@@ -14,10 +14,9 @@
* the License.
*/
-package com.google.android.apps.mytracks;
+package com.google.android.apps.mytracks.io.file;
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
-import com.google.android.apps.mytracks.io.file.GpxImporter;
import com.google.android.apps.mytracks.util.FileUtils;
import com.google.android.apps.mytracks.util.PreferencesUtils;
import com.google.android.apps.mytracks.util.SystemUtils;
diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/file/KmlTrackWriter.java b/MyTracks/src/com/google/android/apps/mytracks/io/file/KmlTrackWriter.java
index c2564d3db..99fd29408 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/io/file/KmlTrackWriter.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/io/file/KmlTrackWriter.java
@@ -24,7 +24,6 @@ import com.google.android.apps.mytracks.content.Sensor.SensorDataSet;
import com.google.android.apps.mytracks.content.Track;
import com.google.android.apps.mytracks.content.Waypoint;
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
-import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileFormat;
import com.google.android.apps.mytracks.util.StringUtils;
import com.google.android.maps.mytracks.R;
import com.google.common.annotations.VisibleForTesting;
diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveActivity.java b/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveActivity.java
index 413792b48..c96f3c83b 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveActivity.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveActivity.java
@@ -16,7 +16,6 @@
package com.google.android.apps.mytracks.io.file;
-import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileFormat;
import com.google.android.apps.mytracks.util.DialogUtils;
import com.google.android.apps.mytracks.util.IntentUtils;
import com.google.android.maps.mytracks.R;
diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveAsyncTask.java b/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveAsyncTask.java
index a7869b393..1af09d29d 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveAsyncTask.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveAsyncTask.java
@@ -18,7 +18,6 @@ package com.google.android.apps.mytracks.io.file;
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
import com.google.android.apps.mytracks.content.TracksColumns;
-import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileFormat;
import com.google.android.apps.mytracks.util.FileUtils;
import com.google.android.apps.mytracks.util.PreferencesUtils;
import com.google.android.apps.mytracks.util.SystemUtils;
diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/file/TcxTrackWriter.java b/MyTracks/src/com/google/android/apps/mytracks/io/file/TcxTrackWriter.java
index 7ea15092c..000245351 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/io/file/TcxTrackWriter.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/io/file/TcxTrackWriter.java
@@ -20,7 +20,6 @@ import com.google.android.apps.mytracks.content.Sensor;
import com.google.android.apps.mytracks.content.Sensor.SensorDataSet;
import com.google.android.apps.mytracks.content.Track;
import com.google.android.apps.mytracks.content.Waypoint;
-import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileFormat;
import com.google.android.apps.mytracks.util.StringUtils;
import com.google.android.apps.mytracks.util.SystemUtils;
import com.google.android.maps.mytracks.R;
diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/file/TrackFileFormat.java b/MyTracks/src/com/google/android/apps/mytracks/io/file/TrackFileFormat.java
new file mode 100644
index 000000000..a53c2a37a
--- /dev/null
+++ b/MyTracks/src/com/google/android/apps/mytracks/io/file/TrackFileFormat.java
@@ -0,0 +1,78 @@
+package com.google.android.apps.mytracks.io.file;
+
+import android.content.Context;
+import android.os.Parcel;
+import android.os.Parcelable;
+
+import java.util.Locale;
+
+/**
+ * Definition of all possible track formats.
+ */
+public enum TrackFileFormat implements Parcelable {
+ GPX {
+ @Override
+ TrackFormatWriter newFormatWriter(Context context) {
+ return new GpxTrackWriter(context);
+ }
+ },
+ KML {
+ @Override
+ TrackFormatWriter newFormatWriter(Context context) {
+ return new KmlTrackWriter(context);
+ }
+ },
+ CSV {
+ @Override
+ public TrackFormatWriter newFormatWriter(Context context) {
+ return new CsvTrackWriter(context);
+ }
+ },
+ TCX {
+ @Override
+ public TrackFormatWriter newFormatWriter(Context context) {
+ return new TcxTrackWriter(context);
+ }
+ };
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(final Parcel dest, final int flags) {
+ dest.writeInt(ordinal());
+ }
+
+ public static final Creator CREATOR = new Creator() {
+ @Override
+ public TrackFileFormat createFromParcel(final Parcel source) {
+ return TrackFileFormat.values()[source.readInt()];
+ }
+
+ @Override
+ public TrackFileFormat[] newArray(final int size) {
+ return new TrackFileFormat[size];
+ }
+ };
+
+ /**
+ * Creates and returns a new format writer for each format.
+ */
+ abstract TrackFormatWriter newFormatWriter(Context context);
+
+ /**
+ * Returns the mime type for each format.
+ */
+ public String getMimeType() {
+ return "application/" + getExtension() + "+xml";
+ }
+
+ /**
+ * Returns the file extension for each format.
+ */
+ public String getExtension() {
+ return this.name().toLowerCase(Locale.US);
+ }
+}
\ No newline at end of file
diff --git a/MyTracks/src/com/google/android/apps/mytracks/io/file/TrackWriterFactory.java b/MyTracks/src/com/google/android/apps/mytracks/io/file/TrackWriterFactory.java
index 91536b3e0..f6fa90b5c 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/io/file/TrackWriterFactory.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/io/file/TrackWriterFactory.java
@@ -22,124 +22,36 @@ import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
import com.google.android.apps.mytracks.content.Track;
import android.content.Context;
-import android.os.Parcel;
-import android.os.Parcelable;
import android.util.Log;
+
/**
* A factory to produce track writers for any format.
- *
+ *
* @author Rodrigo Damazio
*/
public class TrackWriterFactory {
- /**
- * Definition of all possible track formats.
- */
- public enum TrackFileFormat implements Parcelable {
- GPX {
- @Override
- TrackFormatWriter newFormatWriter(Context context) {
- return new GpxTrackWriter(context);
- }
- },
- KML {
- @Override
- TrackFormatWriter newFormatWriter(Context context) {
- return new KmlTrackWriter(context);
- }
- },
- CSV {
- @Override
- public TrackFormatWriter newFormatWriter(Context context) {
- return new CsvTrackWriter(context);
- }
- },
- TCX {
- @Override
- public TrackFormatWriter newFormatWriter(Context context) {
- return new TcxTrackWriter(context);
- }
- };
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(final Parcel dest, final int flags) {
- dest.writeInt(ordinal());
- }
-
- public static final Creator CREATOR = new Creator() {
- @Override
- public TrackFileFormat createFromParcel(final Parcel source) {
- return TrackFileFormat.values()[source.readInt()];
- }
-
- @Override
- public TrackFileFormat[] newArray(final int size) {
- return new TrackFileFormat[size];
- }
- };
-
- /**
- * Creates and returns a new format writer for each format.
- */
- abstract TrackFormatWriter newFormatWriter(Context context);
-
- /**
- * Returns the mime type for each format.
- */
- public String getMimeType() {
- return "application/" + getExtension() + "+xml";
- }
-
- /**
- * Returns the file extension for each format.
- */
- public String getExtension() {
- return this.name().toLowerCase();
- }
- }
-
+ private TrackWriterFactory() {}
+
/**
* Creates a new track writer to write the track with the given ID.
- *
+ *
* @param context the context in which the track will be read
* @param providerUtils the data provider utils to read the track with
* @param trackId the ID of the track to be written
* @param format the output format to write in
* @return the new track writer
*/
- public static TrackWriter newWriter(Context context,
- MyTracksProviderUtils providerUtils,
- long trackId, TrackFileFormat format) {
+ public static TrackWriter newWriter(
+ Context context, MyTracksProviderUtils providerUtils, long trackId, TrackFileFormat format) {
Track track = providerUtils.getTrack(trackId);
if (track == null) {
Log.d(TAG, "No track for " + trackId);
return null;
}
- return newWriter(context, providerUtils, track, format);
- }
-
- /**
- * Creates a new track writer to write the given track.
- *
- * @param context the context in which the track will be read
- * @param providerUtils the data provider utils to read the track with
- * @param track the track to be written
- * @param format the output format to write in
- * @return the new track writer
- */
- private static TrackWriter newWriter(Context context,
- MyTracksProviderUtils providerUtils,
- Track track, TrackFileFormat format) {
TrackFormatWriter writer = format.newFormatWriter(context);
return new TrackWriterImpl(context, providerUtils, track, writer);
}
-
- private TrackWriterFactory() { }
}
diff --git a/MyTracks/src/com/google/android/apps/mytracks/services/RemoveTempFilesService.java b/MyTracks/src/com/google/android/apps/mytracks/services/RemoveTempFilesService.java
index 9866aca3f..33e18357c 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/services/RemoveTempFilesService.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/services/RemoveTempFilesService.java
@@ -16,7 +16,7 @@
package com.google.android.apps.mytracks.services;
-import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileFormat;
+import com.google.android.apps.mytracks.io.file.TrackFileFormat;
import com.google.android.apps.mytracks.util.FileUtils;
import com.google.common.annotations.VisibleForTesting;
diff --git a/MyTracks/src/com/google/android/apps/mytracks/util/IntentUtils.java b/MyTracks/src/com/google/android/apps/mytracks/util/IntentUtils.java
index 42969802d..975e6c4d7 100644
--- a/MyTracks/src/com/google/android/apps/mytracks/util/IntentUtils.java
+++ b/MyTracks/src/com/google/android/apps/mytracks/util/IntentUtils.java
@@ -19,7 +19,7 @@ package com.google.android.apps.mytracks.util;
import com.google.android.apps.mytracks.content.DescriptionGeneratorImpl;
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
import com.google.android.apps.mytracks.content.Track;
-import com.google.android.apps.mytracks.io.file.TrackWriterFactory.TrackFileFormat;
+import com.google.android.apps.mytracks.io.file.TrackFileFormat;
import com.google.android.maps.mytracks.R;
import android.content.ComponentName;