Commit f9956c3e4e324457c52ca185a8e92ff11e36d8fe

Authored by 常守达
1 parent 937eb04a

fix(today):恢复睡眠合并

@@ -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) {