|
...
|
...
|
@@ -15,8 +15,6 @@ class SleepSummaryCard extends StatelessWidget { |
|
|
|
|
|
|
|
static const _brand = Color(0xFF845EEE);
|
|
|
|
static const _blue = Color(0xFF7B9BFB);
|
|
|
|
static const _h2 = Color(0xFF78787D);
|
|
|
|
static const _h3 = Color(0xFFB0B0B6);
|
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
...
|
...
|
@@ -46,33 +44,9 @@ class SleepSummaryCard extends StatelessWidget { |
|
|
|
titleColor: _blue,
|
|
|
|
showInfo: true,
|
|
|
|
onInfoTap: onQualityInfoTap,
|
|
|
|
child: Row(
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.end,
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
quality.shortText,
|
|
|
|
style: TextStyle(
|
|
|
|
color: Color(quality.qualityColorValue),
|
|
|
|
fontSize: 20,
|
|
|
|
fontWeight: FontWeight.w600,
|
|
|
|
height: 1.15,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
const SizedBox(width: 4),
|
|
|
|
Padding(
|
|
|
|
padding: const EdgeInsets.only(bottom: 1),
|
|
|
|
child: Text(
|
|
|
|
score == null
|
|
|
|
? context.l10n.reportUnitScore
|
|
|
|
: '$score${context.l10n.reportUnitScore}',
|
|
|
|
style: TextStyle(
|
|
|
|
color: score == null ? _h3 : _h2,
|
|
|
|
fontSize: 12,
|
|
|
|
fontWeight: FontWeight.w500,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
child: _QualityValue(
|
|
|
|
quality: quality,
|
|
|
|
score: score,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
...
|
...
|
@@ -169,6 +143,58 @@ class _DurationValue extends StatelessWidget { |
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
class _QualityValue extends StatelessWidget {
|
|
|
|
const _QualityValue({
|
|
|
|
required this.quality,
|
|
|
|
required this.score,
|
|
|
|
});
|
|
|
|
|
|
|
|
final SleepQualityLevel quality;
|
|
|
|
final int? score;
|
|
|
|
|
|
|
|
static const _h2 = Color(0xFF78787D);
|
|
|
|
static const _h3 = Color(0xFFB0B0B6);
|
|
|
|
|
|
|
|
@override
|
|
|
|
Widget build(BuildContext context) {
|
|
|
|
final value = score;
|
|
|
|
if (value == null) {
|
|
|
|
return _NumberWithUnit(
|
|
|
|
value: '-',
|
|
|
|
unit: context.l10n.reportUnitScore,
|
|
|
|
unitColor: _h3,
|
|
|
|
);
|
|
|
|
}
|
|
|
|
|
|
|
|
return Row(
|
|
|
|
crossAxisAlignment: CrossAxisAlignment.end,
|
|
|
|
children: [
|
|
|
|
Text(
|
|
|
|
quality.shortText,
|
|
|
|
style: TextStyle(
|
|
|
|
color: Color(quality.qualityColorValue),
|
|
|
|
fontSize: 20,
|
|
|
|
fontWeight: FontWeight.w600,
|
|
|
|
height: 1.15,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
const SizedBox(width: 4),
|
|
|
|
Padding(
|
|
|
|
padding: const EdgeInsets.only(bottom: 1),
|
|
|
|
child: Text(
|
|
|
|
'$value${context.l10n.reportUnitScore}',
|
|
|
|
style: const TextStyle(
|
|
|
|
color: _h2,
|
|
|
|
fontSize: 12,
|
|
|
|
fontWeight: FontWeight.w500,
|
|
|
|
),
|
|
|
|
),
|
|
|
|
),
|
|
|
|
],
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
class _NumberWithUnit extends StatelessWidget {
|
|
|
|
const _NumberWithUnit({
|
|
|
|
required this.value,
|
...
|
...
|
|