fix(watch): retablit la remontee distance/calories Health Services

Corrige l'absence de distance/calories alors que la FC fonctionnait. Perimetre QA vert cible, sans changement UI.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-30 18:29:19 +02:00
parent 3db37fff33
commit 7ce40ebf36
4 changed files with 29 additions and 7 deletions

View File

@ -554,8 +554,12 @@ final class WatchSensorSummary {
minHeartRateBpm: _nullableIntFromJson(json['minHeartRateBpm']),
averageHeartRateBpm: _nullableDoubleFromJson(json['averageHeartRateBpm']),
maxHeartRateBpm: _nullableIntFromJson(json['maxHeartRateBpm']),
totalDistanceMeters: _nullableDoubleFromJson(json['totalDistanceMeters']),
totalCaloriesKcal: _nullableDoubleFromJson(json['totalCaloriesKcal']),
totalDistanceMeters:
_nullableDoubleFromJson(json['totalDistanceMeters']) ??
_nullableDoubleFromJson(json['distanceMeters']),
totalCaloriesKcal:
_nullableDoubleFromJson(json['totalCaloriesKcal']) ??
_nullableDoubleFromJson(json['caloriesKcal']),
);
}

View File

@ -132,6 +132,21 @@ void main() {
expect(summary.totalDistanceMeters, isNull);
expect(summary.totalCaloriesKcal, isNull);
});
test('accepts legacy live metric keys for summary totals', () {
final summary = WatchSensorSummary.fromJson({
'sessionId': 'session-1',
'sampleCount': 4,
'minHeartRateBpm': 91,
'averageHeartRateBpm': 128.5,
'maxHeartRateBpm': 174,
'distanceMeters': 842.4,
'caloriesKcal': 186.2,
});
expect(summary.totalDistanceMeters, 842.4);
expect(summary.totalCaloriesKcal, 186.2);
});
});
group('WatchSensorSample', () {