mirror of
https://codeberg.org/Freeyourgadget/Gadgetbridge
synced 2024-11-26 20:06:52 +01:00
Garmin: Prioritize gpx metadata name over track name
This commit is contained in:
parent
2212b244e6
commit
406e646cae
@ -1,5 +1,6 @@
|
||||
package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@ -11,7 +12,6 @@ import nodomain.freeyourgadget.gadgetbridge.model.GPSCoordinate;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.FileType;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.enums.GarminSport;
|
||||
import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages.FitRecordDataFactory;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.StringUtils;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.gpx.GpxParser;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.gpx.model.GpxFile;
|
||||
import nodomain.freeyourgadget.gadgetbridge.util.gpx.model.GpxTrack;
|
||||
@ -25,7 +25,6 @@ public class GpxRouteFileConverter {
|
||||
private final long timestamp;
|
||||
private final GpxFile gpxFile;
|
||||
private FitFile convertedFile;
|
||||
private String name;
|
||||
|
||||
public GpxRouteFileConverter(byte[] xmlBytes) {
|
||||
this.timestamp = System.currentTimeMillis() / 1000;
|
||||
@ -56,17 +55,22 @@ public class GpxRouteFileConverter {
|
||||
|
||||
public String getName() {
|
||||
if (gpxFile == null) {
|
||||
return "";
|
||||
}
|
||||
|
||||
if (!StringUtils.isNullOrEmpty(this.name))
|
||||
return this.name;
|
||||
|
||||
if (!StringUtils.isNullOrEmpty(gpxFile.getName())) {
|
||||
return gpxFile.getName();
|
||||
} else {
|
||||
return String.valueOf(timestamp);
|
||||
}
|
||||
|
||||
// Prioritize metadata name
|
||||
if (StringUtils.isNotBlank(gpxFile.getName())) {
|
||||
return gpxFile.getName();
|
||||
}
|
||||
|
||||
// Fallback to the first track that has a name
|
||||
for (final GpxTrack track : gpxFile.getTracks()) {
|
||||
if (StringUtils.isNotBlank(track.getName())) {
|
||||
return track.getName();
|
||||
}
|
||||
}
|
||||
|
||||
return String.valueOf(timestamp);
|
||||
}
|
||||
|
||||
private FitFile convertGpxToRoute(GpxFile gpxFile) {
|
||||
@ -90,8 +94,6 @@ public class GpxRouteFileConverter {
|
||||
return null;
|
||||
}
|
||||
|
||||
this.name = track.getName();
|
||||
|
||||
final RecordHeader gpxDataPointRecordHeader = new RecordHeader((byte) 0x05);
|
||||
final RecordDefinition gpxDataPointRecordDefinition = new RecordDefinition(new RecordHeader((byte) 0x45), ByteOrder.BIG_ENDIAN, GlobalFITMessage.RECORD, GlobalFITMessage.RECORD.getFieldDefinitions(0, 1, 2, 5, 253), null);
|
||||
List<RecordData> gpxPointDataRecords = new ArrayList<>();
|
||||
|
Loading…
Reference in New Issue
Block a user