diff --git a/src/main/java/de/dennisguse/opentracks/io/file/exporter/KMLTrackExporter.java b/src/main/java/de/dennisguse/opentracks/io/file/exporter/KMLTrackExporter.java index a1c47c685..833e9592d 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/exporter/KMLTrackExporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/exporter/KMLTrackExporter.java @@ -68,7 +68,7 @@ public class KMLTrackExporter implements TrackExporter { public static final String EXTENDED_DATA_TYPE_SPEED = "speed"; public static final String EXTENDED_DATA_TYPE_DISTANCE = "distance"; 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_HEARTRATE = "heartrate"; public static final String EXTENDED_DATA_TYPE_POWER = "power"; public static final String EXTENDED_DATA_TYPE_ALTITUDE_GAIN = "elevation_gain"; public static final String EXTENDED_DATA_TYPE_ALTITUDE_LOSS = "elevation_loss"; @@ -253,7 +253,7 @@ public class KMLTrackExporter implements TrackExporter { writeSimpleArrayStyle(EXTENDED_DATA_TYPE_SPEED, context.getString(R.string.description_speed_ms)); writeSimpleArrayStyle(EXTENDED_DATA_TYPE_POWER, context.getString(R.string.description_sensor_power)); writeSimpleArrayStyle(EXTENDED_DATA_TYPE_CADENCE, context.getString(R.string.description_sensor_cadence)); - writeSimpleArrayStyle(EXTENDED_DATA_TYPE_HEART_RATE, context.getString(R.string.description_sensor_heart_rate)); + writeSimpleArrayStyle(EXTENDED_DATA_TYPE_HEARTRATE, context.getString(R.string.description_sensor_heart_rate)); printWriter.println(""); } @@ -348,7 +348,7 @@ public class KMLTrackExporter implements TrackExporter { writeSimpleArraySensorData(cadenceList, EXTENDED_DATA_TYPE_CADENCE); } if (heartRateList.stream().anyMatch(Objects::nonNull)) { - writeSimpleArraySensorData(heartRateList, EXTENDED_DATA_TYPE_HEART_RATE); + writeSimpleArraySensorData(heartRateList, EXTENDED_DATA_TYPE_HEARTRATE); } if (altitudeGainList.stream().anyMatch(Objects::nonNull)) { writeSimpleArraySensorData(altitudeGainList, EXTENDED_DATA_TYPE_ALTITUDE_GAIN); diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/KmlTrackImporter.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/KmlTrackImporter.java index 457388b41..31895ffbf 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/KmlTrackImporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/KmlTrackImporter.java @@ -82,6 +82,8 @@ public class KmlTrackImporter extends DefaultHandler implements XMLImporter.Trac private static final String TAG_UUID = "opentracks:trackid"; private static final String ATTRIBUTE_NAME = "name"; + // Until v4.13.0, was in contradiction with KML2.3 standard; keeping backward compatibility. + public static final String EXTENDED_DATA_TYPE_HEART_RATE_LEGACY = "heart_rate"; private Locator locator; @@ -426,7 +428,8 @@ public class KmlTrackImporter extends DefaultHandler implements XMLImporter.Trac case KMLTrackExporter.EXTENDED_DATA_TYPE_SPEED -> sensorSpeedList.add(value); case KMLTrackExporter.EXTENDED_DATA_TYPE_DISTANCE -> sensorDistanceList.add(value); case KMLTrackExporter.EXTENDED_DATA_TYPE_POWER -> sensorPowerList.add(value); - case KMLTrackExporter.EXTENDED_DATA_TYPE_HEART_RATE -> sensorHeartRateList.add(value); + case KMLTrackExporter.EXTENDED_DATA_TYPE_HEARTRATE, + EXTENDED_DATA_TYPE_HEART_RATE_LEGACY -> sensorHeartRateList.add(value); case KMLTrackExporter.EXTENDED_DATA_TYPE_CADENCE -> sensorCadenceList.add(value); case KMLTrackExporter.EXTENDED_DATA_TYPE_ALTITUDE_GAIN -> altitudeGainList.add(value); case KMLTrackExporter.EXTENDED_DATA_TYPE_ALTITUDE_LOSS -> altitudeLossList.add(value);