Showing
1 changed file
with
20 additions
and
20 deletions
| @@ -811,26 +811,26 @@ class _StressBarChartState extends State<_StressBarChart> { | @@ -811,26 +811,26 @@ class _StressBarChartState extends State<_StressBarChart> { | ||
| 811 | ..sort((a, b) => a.fromTime.compareTo(b.fromTime)); | 811 | ..sort((a, b) => a.fromTime.compareTo(b.fromTime)); |
| 812 | 812 | ||
| 813 | // 2. 合并相邻且间隔小于 2 小时的睡眠区间,避免因短暂醒来分段导致多个床图标或跨天首尾大面积相连 | 813 | // 2. 合并相邻且间隔小于 2 小时的睡眠区间,避免因短暂醒来分段导致多个床图标或跨天首尾大面积相连 |
| 814 | - // final mergedList = <V2SleepTimeRange>[]; | ||
| 815 | - // for (final range in sortedList) { | ||
| 816 | - // if (mergedList.isEmpty) { | ||
| 817 | - // mergedList.add(range); | ||
| 818 | - // } else { | ||
| 819 | - // final lastRange = mergedList.last; | ||
| 820 | - // if (range.fromTime - lastRange.toTime <= 2 * 3600) { | ||
| 821 | - // mergedList[mergedList.length - 1] = V2SleepTimeRange( | ||
| 822 | - // fromTime: lastRange.fromTime, | ||
| 823 | - // toTime: range.toTime > lastRange.toTime | ||
| 824 | - // ? range.toTime | ||
| 825 | - // : lastRange.toTime, | ||
| 826 | - // ); | ||
| 827 | - // } else { | ||
| 828 | - // mergedList.add(range); | ||
| 829 | - // } | ||
| 830 | - // } | ||
| 831 | - // } | ||
| 832 | - // 2. 不合并睡眠段,直接使用排序后的列表 | ||
| 833 | - final mergedList = sortedList; | 814 | + final mergedList = <V2SleepTimeRange>[]; |
| 815 | + for (final range in sortedList) { | ||
| 816 | + if (mergedList.isEmpty) { | ||
| 817 | + mergedList.add(range); | ||
| 818 | + } else { | ||
| 819 | + final lastRange = mergedList.last; | ||
| 820 | + if (range.fromTime - lastRange.toTime <= 0.5 * 3600) { | ||
| 821 | + mergedList[mergedList.length - 1] = V2SleepTimeRange( | ||
| 822 | + fromTime: lastRange.fromTime, | ||
| 823 | + toTime: range.toTime > lastRange.toTime | ||
| 824 | + ? range.toTime | ||
| 825 | + : lastRange.toTime, | ||
| 826 | + ); | ||
| 827 | + } else { | ||
| 828 | + mergedList.add(range); | ||
| 829 | + } | ||
| 830 | + } | ||
| 831 | + } | ||
| 832 | + // // 2. 不合并睡眠段,直接使用排序后的列表 | ||
| 833 | + // final mergedList = sortedList; | ||
| 834 | 834 | ||
| 835 | // 3. 渲染合并后的睡眠区间 Positioned widgets | 835 | // 3. 渲染合并后的睡眠区间 Positioned widgets |
| 836 | for (final range in mergedList) { | 836 | for (final range in mergedList) { |
-
Please register or login to post a comment