Only include activity summaries that contain VO2max values when querying for VO2max

Otherwise limiting to one result for getting the first / latest sample
does not work if the latest activity has no VO2max value, e.g. because
it was not an activity type for which VO2max was calculated.
This commit is contained in:
Sebastian Dröge
2026-01-25 16:53:09 +01:00
committed by José Rebelo
parent c1adf8b37f
commit af701ec814
@@ -76,6 +76,7 @@ public class WorkoutVo2MaxSampleProvider implements Vo2MaxSampleProvider<Vo2MaxS
qb.where(BaseActivitySummaryDao.Properties.DeviceId.eq(dbDevice.getId()))
.where(BaseActivitySummaryDao.Properties.StartTime.gt(new Date(timestampFrom)))
.where(BaseActivitySummaryDao.Properties.StartTime.lt(new Date(timestampTo)))
.where(BaseActivitySummaryDao.Properties.SummaryData.like("%" + ActivitySummaryEntries.MAXIMUM_OXYGEN_UPTAKE + "%"))
.orderAsc(BaseActivitySummaryDao.Properties.StartTime);
final List<BaseActivitySummary> samples = qb.build().list();
@@ -123,6 +124,7 @@ public class WorkoutVo2MaxSampleProvider implements Vo2MaxSampleProvider<Vo2MaxS
}
qb.where(BaseActivitySummaryDao.Properties.DeviceId.eq(dbDevice.getId()))
.where(BaseActivitySummaryDao.Properties.SummaryData.like("%" + ActivitySummaryEntries.MAXIMUM_OXYGEN_UPTAKE + "%"))
.orderDesc(BaseActivitySummaryDao.Properties.StartTime)
.limit(1);
@@ -195,6 +197,7 @@ public class WorkoutVo2MaxSampleProvider implements Vo2MaxSampleProvider<Vo2MaxS
final QueryBuilder<BaseActivitySummary> qb = summaryDao.queryBuilder();
qb.where(BaseActivitySummaryDao.Properties.DeviceId.eq(dbDevice.getId()))
.where(BaseActivitySummaryDao.Properties.SummaryData.like("%" + ActivitySummaryEntries.MAXIMUM_OXYGEN_UPTAKE + "%"))
.orderAsc(BaseActivitySummaryDao.Properties.StartTime)
.limit(1);