From 1c6012596ea94fe996db03e805e3b121fdc7767e Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Fri, 9 Apr 2021 18:33:53 +0200 Subject: [PATCH] Use Duration for Markers (instead of long). --- .../java/de/dennisguse/opentracks/chart/ChartView.java | 2 +- .../de/dennisguse/opentracks/content/data/Marker.java | 9 +++++---- .../content/provider/ContentProviderUtils.java | 4 ++-- .../io/file/importer/AbstractFileTrackImporter.java | 2 +- .../opentracks/services/TrackRecordingService.java | 2 +- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/chart/ChartView.java b/src/main/java/de/dennisguse/opentracks/chart/ChartView.java index 94061ef0c..0b87294cb 100644 --- a/src/main/java/de/dennisguse/opentracks/chart/ChartView.java +++ b/src/main/java/de/dennisguse/opentracks/chart/ChartView.java @@ -997,7 +997,7 @@ public class ChartView extends View { double length_km = marker.getLength() * UnitConversions.M_TO_KM; return metricUnits ? length_km : length_km * UnitConversions.KM_TO_MI; } else { - return marker.getDuration(); + return marker.getDuration().toMillis(); } } diff --git a/src/main/java/de/dennisguse/opentracks/content/data/Marker.java b/src/main/java/de/dennisguse/opentracks/content/data/Marker.java index 7adb91ad6..d039b588c 100644 --- a/src/main/java/de/dennisguse/opentracks/content/data/Marker.java +++ b/src/main/java/de/dennisguse/opentracks/content/data/Marker.java @@ -24,6 +24,7 @@ import android.os.Parcelable; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import java.time.Duration; import java.time.Instant; import java.util.Objects; @@ -51,7 +52,7 @@ public final class Marker { //TODO It is the distance from the track starting point; rename to something more meaningful private double length = 0.0; - private long duration = 0; //TODO Duration + private Duration duration; @Deprecated //TODO Make an URI instead of String private String photoUrl = ""; @@ -76,7 +77,7 @@ public final class Marker { if (trackPoint.hasBearing()) this.bearing = trackPoint.getBearing(); } - public Marker(String name, String description, String category, String icon, @NonNull Track.Id trackId, double length, long duration, @NonNull TrackPoint trackPoint, String photoUrl) { + public Marker(String name, String description, String category, String icon, @NonNull Track.Id trackId, double length, @NonNull Duration duration, @NonNull TrackPoint trackPoint, String photoUrl) { this(trackId, trackPoint); this.name = name; this.description = description; @@ -225,11 +226,11 @@ public final class Marker { this.length = length; } - public long getDuration() { + public Duration getDuration() { return duration; } - public void setDuration(long duration) { + public void setDuration(@NonNull Duration duration) { this.duration = duration; } diff --git a/src/main/java/de/dennisguse/opentracks/content/provider/ContentProviderUtils.java b/src/main/java/de/dennisguse/opentracks/content/provider/ContentProviderUtils.java index df8bb7c1b..611ab97ed 100644 --- a/src/main/java/de/dennisguse/opentracks/content/provider/ContentProviderUtils.java +++ b/src/main/java/de/dennisguse/opentracks/content/provider/ContentProviderUtils.java @@ -346,7 +346,7 @@ public class ContentProviderUtils { marker.setLength(cursor.getFloat(lengthIndex)); } if (!cursor.isNull(durationIndex)) { - marker.setDuration(cursor.getLong(durationIndex)); + marker.setDuration(Duration.ofMillis(cursor.getLong(durationIndex))); } if (!cursor.isNull(photoUrlIndex)) { @@ -481,7 +481,7 @@ public class ContentProviderUtils { values.put(MarkerColumns.ICON, marker.getIcon()); values.put(MarkerColumns.TRACKID, marker.getTrackId().getId()); values.put(MarkerColumns.LENGTH, marker.getLength()); - values.put(MarkerColumns.DURATION, marker.getDuration()); + values.put(MarkerColumns.DURATION, marker.getDuration().toMillis()); values.put(MarkerColumns.LONGITUDE, (int) (marker.getLongitude() * 1E6)); values.put(MarkerColumns.LATITUDE, (int) (marker.getLatitude() * 1E6)); diff --git a/src/main/java/de/dennisguse/opentracks/io/file/importer/AbstractFileTrackImporter.java b/src/main/java/de/dennisguse/opentracks/io/file/importer/AbstractFileTrackImporter.java index 5d8ff6c20..326c6951d 100644 --- a/src/main/java/de/dennisguse/opentracks/io/file/importer/AbstractFileTrackImporter.java +++ b/src/main/java/de/dennisguse/opentracks/io/file/importer/AbstractFileTrackImporter.java @@ -203,7 +203,7 @@ abstract class AbstractFileTrackImporter extends DefaultHandler implements Track String markerDescription = marker.getDescription(); String icon = context.getString(R.string.marker_icon_url); double length = trackStatisticsUpdater.getTrackStatistics().getTotalDistance(); - long duration = trackStatisticsUpdater.getTrackStatistics().getTotalTime().toMillis(); + Duration duration = trackStatisticsUpdater.getTrackStatistics().getTotalTime(); // Insert marker Marker newMarker = new Marker(marker.getName(), markerDescription, marker.getCategory(), icon, track.getId(), length, duration, trackPoint, marker.getPhotoUrl()); diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java index 8cc7990bb..d930778eb 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingService.java @@ -242,7 +242,7 @@ public class TrackRecordingService extends Service implements HandlerServer.Hand TrackStatistics stats = trackStatisticsUpdater.getTrackStatistics(); double length = stats.getTotalDistance(); - long duration = stats.getTotalTime().toMillis(); + Duration duration = stats.getTotalTime(); // Insert marker Marker marker = new Marker(name, description, category, icon, serviceStatus.getRecordingTrackId(), length, duration, trackPoint, photoUrl);