diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/fit/RecordData.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/fit/RecordData.java index 905230180..eeb08944c 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/fit/RecordData.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/fit/RecordData.java @@ -165,8 +165,8 @@ public class RecordData { tsb.append(globalFITMessage.name()); } - if (computedTimestamp != null) { - tsb.append(new Date(computedTimestamp * 1000L)); + if (getComputedTimestamp() != null) { + tsb.append(new Date(getComputedTimestamp() * 1000L)); } for (FieldData fieldData : fieldDataList) { diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/fit/messages/FitMonitoring.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/fit/messages/FitMonitoring.java index 956ced2e2..bcb8d9148 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/fit/messages/FitMonitoring.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/fit/messages/FitMonitoring.java @@ -2,6 +2,7 @@ package nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.messages import androidx.annotation.Nullable; +import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.GarminTimeUtils; import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordData; import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordDefinition; import nodomain.freeyourgadget.gadgetbridge.service.devices.garmin.fit.RecordHeader; @@ -77,7 +78,9 @@ public class FitMonitoring extends RecordData { final Integer timestamp16 = getTimestamp16(); final Long computedTimestamp = super.getComputedTimestamp(); if (timestamp16 != null && computedTimestamp != null) { - return (computedTimestamp & ~0xFFFFL) | timestamp16; + return (long) GarminTimeUtils.garminTimestampToUnixTime( + (GarminTimeUtils.unixTimeToGarminTimestamp(computedTimestamp.intValue()) & ~0xFFFF) | (timestamp16 & 0xFFFF) + ); } return computedTimestamp; } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/fit/messages/FitStressLevel.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/fit/messages/FitStressLevel.java index a2bb12153..51f9986e4 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/fit/messages/FitStressLevel.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/service/devices/garmin/fit/messages/FitStressLevel.java @@ -45,4 +45,15 @@ public class FitStressLevel extends RecordData { public Long getStressLevelTime() { return (Long) getFieldByNumber(1); } + + // manual changes below + + @Override + public Long getComputedTimestamp() { + final Long stressTime = getStressLevelTime(); + if (stressTime != null) { + return stressTime; + } + return super.getComputedTimestamp(); + } }