forked from upstream-mirrors/OpenTracks
Bugfix: HealthConnect requires unique timestamps for locations.
Part of #2376.
This commit is contained in:
+11
-8
@@ -196,14 +196,17 @@ public class HealthConnectWorker extends Worker {
|
|||||||
Position position = trackPoint.position();
|
Position position = trackPoint.position();
|
||||||
|
|
||||||
if (position.hasLocation()) {
|
if (position.hasLocation()) {
|
||||||
locations.add(new ExerciseRoute.Location(
|
//ExcerciseRoute does not allow duplicated timestamps.
|
||||||
trackPoint.getTime(),
|
if (locations.stream().noneMatch(location -> location.getTime().equals(position.time()))) {
|
||||||
position.latitude(),
|
locations.add(new ExerciseRoute.Location(
|
||||||
position.longitude(),
|
trackPoint.getTime(),
|
||||||
position.horizontalAccuracy() != null ? Length.meters(position.horizontalAccuracy().toM()) : null,
|
position.latitude(),
|
||||||
position.verticalAccuracy() != null ? Length.meters(position.verticalAccuracy().toM()) : null,
|
position.longitude(),
|
||||||
position.altitude() != null ? Length.meters(position.altitude().toM()) : null)
|
position.horizontalAccuracy() != null ? Length.meters(position.horizontalAccuracy().toM()) : null,
|
||||||
);
|
position.verticalAccuracy() != null ? Length.meters(position.verticalAccuracy().toM()) : null,
|
||||||
|
position.altitude() != null ? Length.meters(position.altitude().toM()) : null)
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (position.hasSpeed()) {
|
if (position.hasSpeed()) {
|
||||||
|
|||||||
Reference in New Issue
Block a user