diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/healthconnect/syncers/AbstractTimeSampleSyncer.kt b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/healthconnect/syncers/AbstractTimeSampleSyncer.kt index 493825ca30..cef7e0c3b9 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/healthconnect/syncers/AbstractTimeSampleSyncer.kt +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/healthconnect/syncers/AbstractTimeSampleSyncer.kt @@ -102,7 +102,8 @@ internal abstract class AbstractTimeSampleSyncer sliceEnd OR sessionEnd < sliceStart + if (sessionBoundaryStart.isAfter(sliceEndBoundary) || sessionBoundaryEndInclusive.isBefore(sliceStartBoundary)) { LOG.debug( "Skipping sleep session (identified by SleepAnalysis) for device '{}' (Timeframe: {} to {}) as it does not overlap with current slice ({} to {}).", deviceName, diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/healthconnect/syncers/StepsSync.kt b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/healthconnect/syncers/StepsSync.kt index 44ce1c12a3..7970b6ee09 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/healthconnect/syncers/StepsSync.kt +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/util/healthconnect/syncers/StepsSync.kt @@ -69,8 +69,9 @@ internal object StepsSyncer : ActivitySampleSyncer { val endTs = Instant.ofEpochSecond(currentSample.timestamp.toLong()) val startTs = endTs.minus(1, ChronoUnit.MINUTES) - // Ensure the record's interval [startTs, endTs) overlaps with the slice [sliceStartBoundary, sliceEndBoundary) - if (endTs.isAfter(sliceStartBoundary) && startTs.isBefore(sliceEndBoundary)) { + // Use inclusive boundaries [sliceStart, sliceEnd] for the slice + // Overlap check: interval overlaps if endTs > sliceStart AND startTs <= sliceEnd + if (endTs.isAfter(sliceStartBoundary) && !startTs.isAfter(sliceEndBoundary)) { stepsRecordList.add(StepsRecord(startTs, offset, endTs, offset, stepsInMinute, metadata)) } else { skippedCount++