forked from upstream-mirrors/OpenTracks
Import/Export: elevation gain per TrackPoint.
This commit is contained in:
@@ -68,9 +68,9 @@ public class TestDataUtil {
|
|||||||
trackPoint.setSpeed(5f + (i / 10));
|
trackPoint.setSpeed(5f + (i / 10));
|
||||||
|
|
||||||
trackPoint.setHeartRate_bpm(100f + i);
|
trackPoint.setHeartRate_bpm(100f + i);
|
||||||
trackPoint.setCyclingCadence_rpm(200f + i);
|
|
||||||
trackPoint.setCyclingCadence_rpm(300f + i);
|
trackPoint.setCyclingCadence_rpm(300f + i);
|
||||||
trackPoint.setPower(400f + i);
|
trackPoint.setPower(400f + i);
|
||||||
|
trackPoint.setElevationGain(500f + i);
|
||||||
return trackPoint;
|
return trackPoint;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+7
-4
@@ -133,7 +133,7 @@ public class ExportImportTest {
|
|||||||
assertMarkers();
|
assertMarkers();
|
||||||
|
|
||||||
// 3. trackpoints
|
// 3. trackpoints
|
||||||
assertTrackpoints(false, false, false);
|
assertTrackpoints(false, false, false, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@LargeTest
|
@LargeTest
|
||||||
@@ -168,7 +168,7 @@ public class ExportImportTest {
|
|||||||
assertMarkers();
|
assertMarkers();
|
||||||
|
|
||||||
// 3. trackpoints
|
// 3. trackpoints
|
||||||
assertTrackpoints(true, true, true);
|
assertTrackpoints(true, true, true, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
@LargeTest
|
@LargeTest
|
||||||
@@ -257,7 +257,7 @@ public class ExportImportTest {
|
|||||||
assertMarkers();
|
assertMarkers();
|
||||||
|
|
||||||
// 3. trackpoints
|
// 3. trackpoints
|
||||||
assertTrackpoints(false, true, true);
|
assertTrackpoints(false, true, true, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@LargeTest
|
@LargeTest
|
||||||
@@ -304,7 +304,7 @@ public class ExportImportTest {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void assertTrackpoints(boolean verifyPower, boolean verifyHeartrate, boolean verifyCadence) {
|
private void assertTrackpoints(boolean verifyPower, boolean verifyHeartrate, boolean verifyCadence, boolean verifyElevationGain) {
|
||||||
List<TrackPoint> importedTrackPoints = contentProviderUtils.getTrackPoints(importTrackId);
|
List<TrackPoint> importedTrackPoints = contentProviderUtils.getTrackPoints(importTrackId);
|
||||||
assertEquals(trackPoints.size(), importedTrackPoints.size());
|
assertEquals(trackPoints.size(), importedTrackPoints.size());
|
||||||
|
|
||||||
@@ -330,6 +330,9 @@ public class ExportImportTest {
|
|||||||
if (verifyPower) {
|
if (verifyPower) {
|
||||||
assertEquals(trackPoint.getPower(), importedTrackPoint.getPower(), 0.01);
|
assertEquals(trackPoint.getPower(), importedTrackPoint.getPower(), 0.01);
|
||||||
}
|
}
|
||||||
|
if (verifyElevationGain) {
|
||||||
|
assertEquals(trackPoint.getElevationGain(), importedTrackPoint.getElevationGain(), 0.01);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -50,6 +50,7 @@ public class KmlTrackWriter implements TrackWriter {
|
|||||||
public static final String EXTENDED_DATA_TYPE_CADENCE = "cadence";
|
public static final String EXTENDED_DATA_TYPE_CADENCE = "cadence";
|
||||||
public static final String EXTENDED_DATA_TYPE_HEART_RATE = "heart_rate";
|
public static final String EXTENDED_DATA_TYPE_HEART_RATE = "heart_rate";
|
||||||
public static final String EXTENDED_DATA_TYPE_POWER = "power";
|
public static final String EXTENDED_DATA_TYPE_POWER = "power";
|
||||||
|
public static final String EXTENDED_DATA_TYPE_ELEVATION_GAIN = "elevation_gain";
|
||||||
|
|
||||||
private static final String WAYPOINT_ICON = "http://maps.google.com/mapfiles/kml/pushpin/blue-pushpin.png";
|
private static final String WAYPOINT_ICON = "http://maps.google.com/mapfiles/kml/pushpin/blue-pushpin.png";
|
||||||
private static final String START_ICON = "http://maps.google.com/mapfiles/kml/paddle/grn-circle.png";
|
private static final String START_ICON = "http://maps.google.com/mapfiles/kml/paddle/grn-circle.png";
|
||||||
@@ -68,6 +69,7 @@ public class KmlTrackWriter implements TrackWriter {
|
|||||||
private final List<Float> powerList = new ArrayList<>();
|
private final List<Float> powerList = new ArrayList<>();
|
||||||
private final List<Float> cadenceList = new ArrayList<>();
|
private final List<Float> cadenceList = new ArrayList<>();
|
||||||
private final List<Float> heartRateList = new ArrayList<>();
|
private final List<Float> heartRateList = new ArrayList<>();
|
||||||
|
private final List<Float> elevationGainList = new ArrayList<>();
|
||||||
|
|
||||||
private TrackPoint startTrackPoint;
|
private TrackPoint startTrackPoint;
|
||||||
|
|
||||||
@@ -257,6 +259,9 @@ public class KmlTrackWriter implements TrackWriter {
|
|||||||
if (heartRateList.size() > 0) {
|
if (heartRateList.size() > 0) {
|
||||||
writeSimpleArrayData(heartRateList, EXTENDED_DATA_TYPE_HEART_RATE);
|
writeSimpleArrayData(heartRateList, EXTENDED_DATA_TYPE_HEART_RATE);
|
||||||
}
|
}
|
||||||
|
if (elevationGainList.size() > 0) {
|
||||||
|
writeSimpleArrayData(elevationGainList, EXTENDED_DATA_TYPE_ELEVATION_GAIN);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
printWriter.println("</SchemaData>");
|
printWriter.println("</SchemaData>");
|
||||||
printWriter.println("</ExtendedData>");
|
printWriter.println("</ExtendedData>");
|
||||||
@@ -287,6 +292,9 @@ public class KmlTrackWriter implements TrackWriter {
|
|||||||
if (trackPoint.hasPower()) {
|
if (trackPoint.hasPower()) {
|
||||||
powerList.add(trackPoint.getPower());
|
powerList.add(trackPoint.getPower());
|
||||||
}
|
}
|
||||||
|
if (trackPoint.hasElevationGain()) {
|
||||||
|
elevationGainList.add(trackPoint.getElevationGain());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -63,11 +63,12 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter {
|
|||||||
|
|
||||||
private boolean trackStarted = false;
|
private boolean trackStarted = false;
|
||||||
private String extendedDataType;
|
private String extendedDataType;
|
||||||
private ArrayList<TrackPoint> trackPoints;
|
private ArrayList<TrackPoint> trackPoints = new ArrayList<>();
|
||||||
private ArrayList<Float> speedList;
|
private ArrayList<Float> speedList = new ArrayList<>();
|
||||||
private ArrayList<Float> cadenceList;
|
private ArrayList<Float> cadenceList = new ArrayList<>();
|
||||||
private ArrayList<Float> heartRateList;
|
private ArrayList<Float> heartRateList = new ArrayList<>();
|
||||||
private ArrayList<Float> powerList;
|
private ArrayList<Float> powerList = new ArrayList<>();
|
||||||
|
private ArrayList<Float> elevationGainList = new ArrayList<>();
|
||||||
|
|
||||||
public KmlFileTrackImporter(Context context) {
|
public KmlFileTrackImporter(Context context) {
|
||||||
this(context, new ContentProviderUtils(context));
|
this(context, new ContentProviderUtils(context));
|
||||||
@@ -223,11 +224,12 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter {
|
|||||||
@Override
|
@Override
|
||||||
protected void onTrackSegmentStart() {
|
protected void onTrackSegmentStart() {
|
||||||
super.onTrackSegmentStart();
|
super.onTrackSegmentStart();
|
||||||
trackPoints = new ArrayList<>();
|
trackPoints.clear();
|
||||||
speedList = new ArrayList<>();
|
speedList.clear();
|
||||||
heartRateList = new ArrayList<>();
|
heartRateList.clear();
|
||||||
cadenceList = new ArrayList<>();
|
cadenceList.clear();
|
||||||
powerList = new ArrayList<>();
|
powerList.clear();
|
||||||
|
elevationGainList.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -250,6 +252,9 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter {
|
|||||||
if (i < powerList.size()) {
|
if (i < powerList.size()) {
|
||||||
trackPoint.setPower(powerList.get(i));
|
trackPoint.setPower(powerList.get(i));
|
||||||
}
|
}
|
||||||
|
if (i < elevationGainList.size()) {
|
||||||
|
trackPoint.setElevationGain(elevationGainList.get(i));
|
||||||
|
}
|
||||||
|
|
||||||
insertTrackPoint(trackPoint);
|
insertTrackPoint(trackPoint);
|
||||||
}
|
}
|
||||||
@@ -316,6 +321,9 @@ public class KmlFileTrackImporter extends AbstractFileTrackImporter {
|
|||||||
case KmlTrackWriter.EXTENDED_DATA_TYPE_CADENCE:
|
case KmlTrackWriter.EXTENDED_DATA_TYPE_CADENCE:
|
||||||
cadenceList.add(value);
|
cadenceList.add(value);
|
||||||
break;
|
break;
|
||||||
|
case KmlTrackWriter.EXTENDED_DATA_TYPE_ELEVATION_GAIN:
|
||||||
|
elevationGainList.add(value);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
Log.w(TAG, "Data from extended data " + extendedDataType + " is not (yet) supported.");
|
Log.w(TAG, "Data from extended data " + extendedDataType + " is not (yet) supported.");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user