forked from upstream-mirrors/OpenTracks
code format
This commit is contained in:
@@ -114,9 +114,8 @@ public class GpxSaxImporter extends DefaultHandler {
|
||||
private MyTracksProviderUtils providerUtils;
|
||||
|
||||
/**
|
||||
* flag to indicate if we in a track xml element
|
||||
* some sub elements like name may be used in other
|
||||
* parts of the gpx file - ignore them
|
||||
* flag to indicate if we in a track xml element some sub elements like name
|
||||
* may be used in other parts of the gpx file - ignore them
|
||||
*/
|
||||
private boolean isInTrackElement;
|
||||
|
||||
@@ -124,19 +123,27 @@ public class GpxSaxImporter extends DefaultHandler {
|
||||
* Reads GPS tracks from a GPX file and append tracks and their coordinates to
|
||||
* the given list of tracks.
|
||||
*
|
||||
* Callers must execute <pre>rollbackUnfinishedTrack</pre> in case of
|
||||
* an exception to avoid inconsistent data
|
||||
* Callers must execute
|
||||
*
|
||||
* <pre>
|
||||
* rollbackUnfinishedTrack
|
||||
* </pre>
|
||||
*
|
||||
* in case of an exception to avoid inconsistent data
|
||||
*
|
||||
* @param tracks
|
||||
* a list of tracks
|
||||
* @param is
|
||||
* a input steam with gpx-xml data
|
||||
* @throws SAXException a parsing error
|
||||
* @throws ParserConfigurationException internal error
|
||||
* @throws IOException a file reading problem
|
||||
* @throws SAXException
|
||||
* a parsing error
|
||||
* @throws ParserConfigurationException
|
||||
* internal error
|
||||
* @throws IOException
|
||||
* a file reading problem
|
||||
*/
|
||||
public static long[] importGPXFile(
|
||||
final InputStream is,final MyTracksProviderUtils providerUtils)
|
||||
public static long[] importGPXFile(final InputStream is,
|
||||
final MyTracksProviderUtils providerUtils)
|
||||
throws ParserConfigurationException, SAXException, IOException {
|
||||
|
||||
SAXParserFactory factory = SAXParserFactory.newInstance();
|
||||
@@ -186,7 +193,6 @@ public class GpxSaxImporter extends DefaultHandler {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void endElement(String uri, String localName, String name)
|
||||
throws SAXException {
|
||||
@@ -259,7 +265,6 @@ public class GpxSaxImporter extends DefaultHandler {
|
||||
return loc;
|
||||
}
|
||||
|
||||
|
||||
private void onDescriptionElementEnd() {
|
||||
track.setDescription(content.toString().trim());
|
||||
}
|
||||
@@ -278,7 +283,8 @@ public class GpxSaxImporter extends DefaultHandler {
|
||||
stats.addLocation(location, location.getTime());
|
||||
|
||||
// insert in db
|
||||
Uri trackPointIdUri = providerUtils.insertTrackPoint(location, track.getId());
|
||||
Uri trackPointIdUri = providerUtils.insertTrackPoint(location, track
|
||||
.getId());
|
||||
|
||||
// set start and stop id for track
|
||||
long trackPointId = Long.parseLong(trackPointIdUri.getLastPathSegment());
|
||||
@@ -322,10 +328,9 @@ public class GpxSaxImporter extends DefaultHandler {
|
||||
}
|
||||
|
||||
/**
|
||||
* setting time and doing additional calculations
|
||||
* as this is the last value required. Also sets the
|
||||
* start time for track and statistics as there is
|
||||
* no start time in the track root element
|
||||
* setting time and doing additional calculations as this is the last value
|
||||
* required. Also sets the start time for track and statistics as there is no
|
||||
* start time in the track root element
|
||||
*/
|
||||
private void onTimeElementEnd() {
|
||||
|
||||
|
||||
@@ -54,22 +54,25 @@ public class GpxImporterTest extends AndroidTestCase {
|
||||
private static final String TRACK_TIME_2 = "2010-04-22T18:21:50Z";
|
||||
|
||||
// TODO use real files from different sources with more track points
|
||||
private static final String VALID_TEST_GPX =
|
||||
"<gpx><trk><name><![CDATA[" + TRACK_NAME + "]]></name><desc><![CDATA[" + TRACK_DESC + "]]></desc><trkseg>" +
|
||||
"<trkpt lat=\"" + TRACK_LAT_1 + "\" lon=\"" + TRACK_LON_1 + "\"><ele>" + TRACK_ELE_1 + "</ele><time>" + TRACK_TIME_1 + "</time></trkpt> +" +
|
||||
"<trkpt lat=\"" + TRACK_LAT_2 + "\" lon=\"" + TRACK_LON_2 + "\"><ele>" + TRACK_ELE_2 + "</ele><time>" + TRACK_TIME_2 + "</time></trkpt>" +
|
||||
"</trkseg></trk></gpx>";
|
||||
private static final String VALID_TEST_GPX = "<gpx><trk><name><![CDATA["
|
||||
+ TRACK_NAME + "]]></name><desc><![CDATA[" + TRACK_DESC
|
||||
+ "]]></desc><trkseg>" + "<trkpt lat=\"" + TRACK_LAT_1 + "\" lon=\""
|
||||
+ TRACK_LON_1 + "\"><ele>" + TRACK_ELE_1 + "</ele><time>" + TRACK_TIME_1
|
||||
+ "</time></trkpt> +" + "<trkpt lat=\"" + TRACK_LAT_2 + "\" lon=\""
|
||||
+ TRACK_LON_2 + "\"><ele>" + TRACK_ELE_2 + "</ele><time>" + TRACK_TIME_2
|
||||
+ "</time></trkpt>" + "</trkseg></trk></gpx>";
|
||||
|
||||
// invalid xml
|
||||
private static final String INVALID_TEST_GPX = VALID_TEST_GPX.substring(0,VALID_TEST_GPX.length() - 50);
|
||||
private static final String INVALID_TEST_GPX = VALID_TEST_GPX.substring(0,
|
||||
VALID_TEST_GPX.length() - 50);
|
||||
|
||||
private static final long TRACK_ID = 1;
|
||||
private static final long TRACK_POINT_ID = 1;
|
||||
|
||||
private static final Uri TRACK_ID_URI =
|
||||
ContentUris.appendId( TracksColumns.CONTENT_URI.buildUpon(), TRACK_ID).build();
|
||||
private static final Uri TRACK_POINT_ID_URI =
|
||||
ContentUris.appendId( TrackPointsColumns.CONTENT_URI.buildUpon(), TRACK_POINT_ID).build();
|
||||
private static final Uri TRACK_ID_URI = ContentUris.appendId(
|
||||
TracksColumns.CONTENT_URI.buildUpon(), TRACK_ID).build();
|
||||
private static final Uri TRACK_POINT_ID_URI = ContentUris.appendId(
|
||||
TrackPointsColumns.CONTENT_URI.buildUpon(), TRACK_POINT_ID).build();
|
||||
|
||||
private MyTracksProviderUtils providerUtils;
|
||||
|
||||
@@ -98,12 +101,10 @@ public class GpxImporterTest extends AndroidTestCase {
|
||||
Capture<Location> locParam = new Capture<Location>();
|
||||
Capture<Long> idParam = new Capture<Long>();
|
||||
|
||||
expect(
|
||||
providerUtils.insertTrack(capture(trackParam)))
|
||||
.andReturn(TRACK_ID_URI);
|
||||
expect(providerUtils.insertTrack(capture(trackParam))).andReturn(
|
||||
TRACK_ID_URI);
|
||||
|
||||
expect(
|
||||
providerUtils.insertTrackPoint(capture(locParam),capture(idParam)))
|
||||
expect(providerUtils.insertTrackPoint(capture(locParam), capture(idParam)))
|
||||
.andReturn(TRACK_POINT_ID_URI);
|
||||
expectLastCall().times(2);
|
||||
|
||||
@@ -120,7 +121,8 @@ public class GpxImporterTest extends AndroidTestCase {
|
||||
Track track = trackParam.getValue();
|
||||
assertEquals(TRACK_NAME, track.getName());
|
||||
assertEquals(TRACK_DESC, track.getDescription());
|
||||
assertEquals(DATE_FORMAT.parse(TRACK_TIME_1).getTime(), track.getStartTime());
|
||||
assertEquals(DATE_FORMAT.parse(TRACK_TIME_1).getTime(), track
|
||||
.getStartTime());
|
||||
assertNotSame(-1, track.getStartId());
|
||||
assertNotSame(-1, track.getStopId());
|
||||
|
||||
@@ -134,17 +136,15 @@ public class GpxImporterTest extends AndroidTestCase {
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if created track will be deleted on
|
||||
* parsing errors
|
||||
* Test if created track will be deleted on parsing errors
|
||||
*/
|
||||
public void testImportFailure() throws ParserConfigurationException,
|
||||
SAXException, IOException {
|
||||
|
||||
expect(providerUtils.insertTrack((Track) EasyMock.anyObject())).andReturn(
|
||||
TRACK_ID_URI);
|
||||
expect(
|
||||
providerUtils.insertTrack((Track) EasyMock.anyObject())).andReturn(TRACK_ID_URI);
|
||||
expect(
|
||||
providerUtils.insertTrackPoint(
|
||||
(Location) EasyMock.anyObject(),
|
||||
providerUtils.insertTrackPoint((Location) EasyMock.anyObject(),
|
||||
EasyMock.anyLong())).andReturn(TRACK_POINT_ID_URI);
|
||||
|
||||
expectLastCall().anyTimes();
|
||||
|
||||
Reference in New Issue
Block a user