|
...
|
...
|
@@ -90,8 +90,8 @@ class LocalHealthDataConvert { |
|
|
|
avgSleepScore: _averageOrNull(
|
|
|
|
validSleep.map((e) => e.score).whereType<num>().toList(),
|
|
|
|
),
|
|
|
|
avgSleepEvaluate: _averageOrNull(
|
|
|
|
validSleep.map((e) => e.state?.value).whereType<num>().toList(),
|
|
|
|
avgSleepEvaluate: _sleepEvaluateFromAverageScore(
|
|
|
|
validSleep.map((e) => e.score).whereType<num>().toList(),
|
|
|
|
),
|
|
|
|
qoqAvgSleepDuration: _averageOrNull(
|
|
|
|
previousValidSleep.map((e) => e.durationSeconds).toList(),
|
|
...
|
...
|
@@ -99,8 +99,8 @@ class LocalHealthDataConvert { |
|
|
|
qoqSleepScore: _averageOrNull(
|
|
|
|
previousValidSleep.map((e) => e.score).whereType<num>().toList(),
|
|
|
|
),
|
|
|
|
qoqSleepEvaluate: _averageOrNull(
|
|
|
|
previousValidSleep.map((e) => e.state?.value).whereType<num>().toList(),
|
|
|
|
qoqSleepEvaluate: _sleepEvaluateFromAverageScore(
|
|
|
|
previousValidSleep.map((e) => e.score).whereType<num>().toList(),
|
|
|
|
),
|
|
|
|
sleepTrendList: [
|
|
|
|
for (final item in daily)
|
|
...
|
...
|
@@ -176,8 +176,8 @@ class LocalHealthDataConvert { |
|
|
|
avgSleepScore: _averageOrNull(
|
|
|
|
validSleep.map((e) => e.sleepScore).toList(),
|
|
|
|
),
|
|
|
|
avgSleepEvaluate: _averageOrNull(
|
|
|
|
validSleep.map((e) => e.sleepStateValue).whereType<num>().toList(),
|
|
|
|
avgSleepEvaluate: _sleepEvaluateFromAverageScore(
|
|
|
|
validSleep.map((e) => e.sleepScore).toList(),
|
|
|
|
),
|
|
|
|
qoqAvgSleepDuration: _averageOrNull(
|
|
|
|
previousValidSleep.map((e) => e.sleepMinutes * 60).toList(),
|
|
...
|
...
|
@@ -185,11 +185,8 @@ class LocalHealthDataConvert { |
|
|
|
qoqSleepScore: _averageOrNull(
|
|
|
|
previousValidSleep.map((e) => e.sleepScore).toList(),
|
|
|
|
),
|
|
|
|
qoqSleepEvaluate: _averageOrNull(
|
|
|
|
previousValidSleep
|
|
|
|
.map((e) => e.sleepStateValue)
|
|
|
|
.whereType<num>()
|
|
|
|
.toList(),
|
|
|
|
qoqSleepEvaluate: _sleepEvaluateFromAverageScore(
|
|
|
|
previousValidSleep.map((e) => e.sleepScore).toList(),
|
|
|
|
),
|
|
|
|
sleepTrendList: [
|
|
|
|
for (var index = 0; index < days.length; index++)
|
|
...
|
...
|
@@ -993,6 +990,12 @@ class LocalHealthDataConvert { |
|
|
|
return _sum(values) / values.length;
|
|
|
|
}
|
|
|
|
|
|
|
|
static int? _sleepEvaluateFromAverageScore(List<num> scores) {
|
|
|
|
final averageScore = _averageOrNull(scores);
|
|
|
|
if (averageScore == null) return null;
|
|
|
|
return HealthSleepCalculator.sleepState(averageScore.round())?.value;
|
|
|
|
}
|
|
|
|
|
|
|
|
static num? _maxOrNull(List<num> values) {
|
|
|
|
if (values.isEmpty) return null;
|
|
|
|
return values.reduce(math.max);
|
...
|
...
|
|