From eb49156ee77b58d833f750d955d7e9b9e6f4467e Mon Sep 17 00:00:00 2001 From: Dennis Guse Date: Thu, 11 Dec 2025 18:24:47 +0100 Subject: [PATCH] Bugfix: crash when using number as default track name. Fixes #2229. --- .../services/TrackRecordingManager.java | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java index 3efb13625..53937d772 100644 --- a/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java +++ b/src/main/java/de/dennisguse/opentracks/services/TrackRecordingManager.java @@ -75,18 +75,25 @@ public class TrackRecordingManager implements SharedPreferences.OnSharedPreferen Statistics initialStatistics = trackStatisticsUpdater.getTrackStatistics(); String activityTypeLocalized = PreferencesUtils.getDefaultActivityTypeLocalized(); - Track track = new Track( - null, - UUID.randomUUID(), //TODO This is not really cool: should happen in ContentProviderUtils? - TrackNameUtils.getTrackName(context, trackId, initialStatistics.startTime().atOffset(zoneOffset)), - "", - activityTypeLocalized, - ActivityType.findByLocalizedString(context, activityTypeLocalized), - zoneOffset, - initialStatistics + + trackId = contentProviderUtils.insertTrack( + new Track( + null, + UUID.randomUUID(), //TODO This is not really cool: should happen in ContentProviderUtils? + "", + "", + activityTypeLocalized, + ActivityType.findByLocalizedString(context, activityTypeLocalized), + zoneOffset, + initialStatistics + ) ); - trackId = contentProviderUtils.insertTrack(track); + //TODO Move this into ContentProviderUtils? + // Generating the name requires already the track.id (generated by the database). + TrackBuilder track = new TrackBuilder(contentProviderUtils.getTrack(trackId)); + track.setName(TrackNameUtils.getTrackName(context, trackId, initialStatistics.startTime().atOffset(zoneOffset))); + contentProviderUtils.updateTrack(track.getTrack()); onNewTrackPoint(segmentStartTrackPoint);