forked from upstream-mirrors/OpenTracks
Move ImportActivity and ImportAsyncTask to
io/file package. Move TrackFileFormat to its own class.
This commit is contained in:
@@ -150,7 +150,7 @@ limitations under the License.
|
|||||||
<activity
|
<activity
|
||||||
android:label="@string/menu_help"
|
android:label="@string/menu_help"
|
||||||
android:name="com.google.android.apps.mytracks.HelpActivity" />
|
android:name="com.google.android.apps.mytracks.HelpActivity" />
|
||||||
<activity android:name="com.google.android.apps.mytracks.ImportActivity" >
|
<activity android:name="com.google.android.apps.mytracks.io.file.ImportActivity" >
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.ATTACH_DATA" />
|
<action android:name="android.intent.action.ATTACH_DATA" />
|
||||||
<action android:name="android.intent.action.VIEW" />
|
<action android:name="android.intent.action.VIEW" />
|
||||||
|
|||||||
@@ -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.MyTracksMapFragment;
|
||||||
import com.google.android.apps.mytracks.fragments.StatsFragment;
|
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.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.io.sendtogoogle.SendRequest;
|
||||||
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
|
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
|
||||||
import com.google.android.apps.mytracks.settings.SettingsActivity;
|
import com.google.android.apps.mytracks.settings.SettingsActivity;
|
||||||
|
|||||||
@@ -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.DeleteOneTrackDialogFragment.DeleteOneTrackCaller;
|
||||||
import com.google.android.apps.mytracks.fragments.EulaDialogFragment;
|
import com.google.android.apps.mytracks.fragments.EulaDialogFragment;
|
||||||
import com.google.android.apps.mytracks.fragments.WelcomeDialogFragment;
|
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.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.ITrackRecordingService;
|
||||||
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
|
import com.google.android.apps.mytracks.services.TrackRecordingServiceConnection;
|
||||||
import com.google.android.apps.mytracks.settings.SettingsActivity;
|
import com.google.android.apps.mytracks.settings.SettingsActivity;
|
||||||
|
|||||||
+1
-1
@@ -17,7 +17,7 @@
|
|||||||
package com.google.android.apps.mytracks.fragments;
|
package com.google.android.apps.mytracks.fragments;
|
||||||
|
|
||||||
import com.google.android.apps.mytracks.io.file.SaveActivity;
|
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.AnalyticsUtils;
|
||||||
import com.google.android.apps.mytracks.util.IntentUtils;
|
import com.google.android.apps.mytracks.util.IntentUtils;
|
||||||
import com.google.android.apps.mytracks.util.PreferencesUtils;
|
import com.google.android.apps.mytracks.util.PreferencesUtils;
|
||||||
|
|||||||
@@ -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.Sensor.SensorDataSet;
|
||||||
import com.google.android.apps.mytracks.content.Track;
|
import com.google.android.apps.mytracks.content.Track;
|
||||||
import com.google.android.apps.mytracks.content.Waypoint;
|
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.StringUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
|
|||||||
@@ -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.Track;
|
||||||
import com.google.android.apps.mytracks.content.Waypoint;
|
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.StringUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
|
|||||||
+2
-1
@@ -14,8 +14,9 @@
|
|||||||
* the License.
|
* 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.DialogUtils;
|
||||||
import com.google.android.apps.mytracks.util.FileUtils;
|
import com.google.android.apps.mytracks.util.FileUtils;
|
||||||
import com.google.android.apps.mytracks.util.IntentUtils;
|
import com.google.android.apps.mytracks.util.IntentUtils;
|
||||||
+1
-2
@@ -14,10 +14,9 @@
|
|||||||
* the License.
|
* 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.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.FileUtils;
|
||||||
import com.google.android.apps.mytracks.util.PreferencesUtils;
|
import com.google.android.apps.mytracks.util.PreferencesUtils;
|
||||||
import com.google.android.apps.mytracks.util.SystemUtils;
|
import com.google.android.apps.mytracks.util.SystemUtils;
|
||||||
@@ -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.Track;
|
||||||
import com.google.android.apps.mytracks.content.Waypoint;
|
import com.google.android.apps.mytracks.content.Waypoint;
|
||||||
import com.google.android.apps.mytracks.content.Waypoint.WaypointType;
|
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.apps.mytracks.util.StringUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.io.file;
|
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.DialogUtils;
|
||||||
import com.google.android.apps.mytracks.util.IntentUtils;
|
import com.google.android.apps.mytracks.util.IntentUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|||||||
@@ -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.MyTracksProviderUtils;
|
||||||
import com.google.android.apps.mytracks.content.TracksColumns;
|
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.FileUtils;
|
||||||
import com.google.android.apps.mytracks.util.PreferencesUtils;
|
import com.google.android.apps.mytracks.util.PreferencesUtils;
|
||||||
import com.google.android.apps.mytracks.util.SystemUtils;
|
import com.google.android.apps.mytracks.util.SystemUtils;
|
||||||
|
|||||||
@@ -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.Sensor.SensorDataSet;
|
||||||
import com.google.android.apps.mytracks.content.Track;
|
import com.google.android.apps.mytracks.content.Track;
|
||||||
import com.google.android.apps.mytracks.content.Waypoint;
|
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.StringUtils;
|
||||||
import com.google.android.apps.mytracks.util.SystemUtils;
|
import com.google.android.apps.mytracks.util.SystemUtils;
|
||||||
import com.google.android.maps.mytracks.R;
|
import com.google.android.maps.mytracks.R;
|
||||||
|
|||||||
@@ -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<TrackFileFormat> CREATOR = new Creator<TrackFileFormat>() {
|
||||||
|
@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);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -22,10 +22,9 @@ import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
|||||||
import com.google.android.apps.mytracks.content.Track;
|
import com.google.android.apps.mytracks.content.Track;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Parcel;
|
|
||||||
import android.os.Parcelable;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A factory to produce track writers for any format.
|
* A factory to produce track writers for any format.
|
||||||
*
|
*
|
||||||
@@ -33,76 +32,7 @@ import android.util.Log;
|
|||||||
*/
|
*/
|
||||||
public class TrackWriterFactory {
|
public class TrackWriterFactory {
|
||||||
|
|
||||||
/**
|
private 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<TrackFileFormat> CREATOR = new Creator<TrackFileFormat>() {
|
|
||||||
@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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a new track writer to write the track with the given ID.
|
* Creates a new track writer to write the track with the given ID.
|
||||||
@@ -113,33 +43,15 @@ public class TrackWriterFactory {
|
|||||||
* @param format the output format to write in
|
* @param format the output format to write in
|
||||||
* @return the new track writer
|
* @return the new track writer
|
||||||
*/
|
*/
|
||||||
public static TrackWriter newWriter(Context context,
|
public static TrackWriter newWriter(
|
||||||
MyTracksProviderUtils providerUtils,
|
Context context, MyTracksProviderUtils providerUtils, long trackId, TrackFileFormat format) {
|
||||||
long trackId, TrackFileFormat format) {
|
|
||||||
Track track = providerUtils.getTrack(trackId);
|
Track track = providerUtils.getTrack(trackId);
|
||||||
if (track == null) {
|
if (track == null) {
|
||||||
Log.d(TAG, "No track for " + trackId);
|
Log.d(TAG, "No track for " + trackId);
|
||||||
return null;
|
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);
|
TrackFormatWriter writer = format.newFormatWriter(context);
|
||||||
return new TrackWriterImpl(context, providerUtils, track, writer);
|
return new TrackWriterImpl(context, providerUtils, track, writer);
|
||||||
}
|
}
|
||||||
|
|
||||||
private TrackWriterFactory() { }
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
package com.google.android.apps.mytracks.services;
|
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.android.apps.mytracks.util.FileUtils;
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
|
|
||||||
|
|||||||
@@ -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.DescriptionGeneratorImpl;
|
||||||
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
import com.google.android.apps.mytracks.content.MyTracksProviderUtils;
|
||||||
import com.google.android.apps.mytracks.content.Track;
|
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 com.google.android.maps.mytracks.R;
|
||||||
|
|
||||||
import android.content.ComponentName;
|
import android.content.ComponentName;
|
||||||
|
|||||||
Reference in New Issue
Block a user