Garmin: avoid reading the FIT file twice for auto GPX export

This commit is contained in:
Thomas Kuehne
2026-05-01 10:43:10 +00:00
parent c1d8eb58b9
commit b8061337e2
2 changed files with 7 additions and 3 deletions
@@ -58,7 +58,11 @@ public class FitActivityTrackProvider implements ActivityTrackProvider {
LOG.error("Failed to parse fit file", e);
return null;
}
return getActivityTrack(summary, fitFile);
}
@Nullable
public ActivityTrack getActivityTrack(@NonNull final BaseActivitySummary summary, @NonNull final FitFile fitFile) {
final ActivityTrack activityTrack = new ActivityTrack();
activityTrack.setName(summary.getName());
@@ -566,7 +566,7 @@ public class FitImporter {
switch (fileId.getType()) {
case ACTIVITY:
persistWorkout(finalExportFile, session, isReprocessing);
persistWorkout(finalExportFile, session, isReprocessing, fitFile);
break;
case MONITOR:
persistActivitySamples(session);
@@ -644,7 +644,7 @@ public class FitImporter {
}
}
private void persistWorkout(final File file, final DaoSession session, boolean isReprocessing) {
private void persistWorkout(final File file, final DaoSession session, boolean isReprocessing, FitFile fitFile) {
LOG.debug("Persisting workout for {}", fileId);
Long sessionStart = workoutParser.getSessionStartTime();
@@ -703,7 +703,7 @@ public class FitImporter {
// Export to gpx
if (AutoGpxExporter.isExportEnabled(gbDevice)) {
final FitActivityTrackProvider activityTrackProvider = new FitActivityTrackProvider();
final ActivityTrack activityTrack = activityTrackProvider.getActivityTrack(summary);
final ActivityTrack activityTrack = activityTrackProvider.getActivityTrack(summary, fitFile);
if (activityTrack != null) {
AutoGpxExporter.doExport(context, gbDevice, summary, activityTrack);
}