Cleanup: move track.uuid generation to ContentProviderUtils.

Part of #2383.
This commit is contained in:
Dennis Guse
2026-09-12 19:34:18 +02:00
parent f8279c7095
commit d5e83cf057
5 changed files with 20 additions and 3 deletions
@@ -51,6 +51,7 @@ import de.dennisguse.opentracks.data.models.Speed;
import de.dennisguse.opentracks.data.models.Statistics; import de.dennisguse.opentracks.data.models.Statistics;
import de.dennisguse.opentracks.data.models.Temperature; import de.dennisguse.opentracks.data.models.Temperature;
import de.dennisguse.opentracks.data.models.Track; import de.dennisguse.opentracks.data.models.Track;
import de.dennisguse.opentracks.data.models.TrackBuilder;
import de.dennisguse.opentracks.data.models.TrackPoint; import de.dennisguse.opentracks.data.models.TrackPoint;
import de.dennisguse.opentracks.data.statistics.SensorStatistics; import de.dennisguse.opentracks.data.statistics.SensorStatistics;
import de.dennisguse.opentracks.data.tables.MarkerColumns; import de.dennisguse.opentracks.data.tables.MarkerColumns;
@@ -232,12 +233,16 @@ public class ContentProviderUtils {
/** /**
* Inserts a track. * Inserts a track.
* NOTE: This doesn't insert any trackPoints. * NOTE: This doesn't insert any trackPoints.
* NOTE: if the track.uuid is null, a random value will be assigned.
* *
* @param track the track * @param track the track
* @return the content provider URI of the inserted track. * @return the content provider URI of the inserted track.
*/ */
public Track.Id insertTrack(Track track) { public Track.Id insertTrack(Track track) {
//TODO Unset trackId //TODO Unset trackId as it should be database generated
if (track.uuid() == null) {
track = new TrackBuilder(track, UUID.randomUUID()).getTrack();
}
Uri uri = contentResolver.insert(CustomContentProvider.UrlType.TRACKS.getUri(), createContentValues(track)); Uri uri = contentResolver.insert(CustomContentProvider.UrlType.TRACKS.getUri(), createContentValues(track));
return new Track.Id(ContentUris.parseId(uri)); return new Track.Id(ContentUris.parseId(uri));
} }
@@ -57,6 +57,17 @@ public class TrackBuilder {
this.trackStatistics = track.statistics(); this.trackStatistics = track.statistics();
} }
public TrackBuilder(Track track, UUID uuid) {
this.id = track.id();
this.uuid = uuid;
this.name = track.name();
this.description = track.description();
this.activityTypeLocalized = track.activityTypeLocalized();
this.activityType = track.activityType();
this.zoneOffset = track.zoneOffset();
this.trackStatistics = track.statistics();
}
public void setName(String name) { public void setName(String name) {
this.name = name; this.name = name;
} }
@@ -30,5 +30,6 @@ import de.dennisguse.opentracks.data.models.Track;
*/ */
public interface TrackExporter { public interface TrackExporter {
//TODO Pass track.Id instead of track?
boolean writeTrack(List<Track> tracks, @NonNull OutputStream outputStream); boolean writeTrack(List<Track> tracks, @NonNull OutputStream outputStream);
} }
@@ -131,7 +131,7 @@ public class TrackImporter {
} }
//TODO This is a workaround until we have proper UI. //TODO This is a workaround until we have proper UI.
trackData.uuid = UUID.randomUUID(); trackData.uuid = null;
} }
trackPoints.sort(Comparator.comparing(TrackPoint::getTime)); trackPoints.sort(Comparator.comparing(TrackPoint::getTime));
@@ -79,7 +79,7 @@ public class TrackRecordingManager implements SharedPreferences.OnSharedPreferen
trackId = contentProviderUtils.insertTrack( trackId = contentProviderUtils.insertTrack(
new Track( new Track(
null, null,
UUID.randomUUID(), //TODO This is not really cool: should happen in ContentProviderUtils? null,
"", "",
"", "",
activityTypeLocalized, activityTypeLocalized,