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;