diff --git a/lib/pages/analytics/modules/occupancy/widgets/occupancy_heat_map_gradient.dart b/lib/pages/analytics/modules/occupancy/widgets/occupancy_heat_map_gradient.dart index 53f1e6c9..76a1d2bf 100644 --- a/lib/pages/analytics/modules/occupancy/widgets/occupancy_heat_map_gradient.dart +++ b/lib/pages/analytics/modules/occupancy/widgets/occupancy_heat_map_gradient.dart @@ -34,8 +34,8 @@ class OccupancyHeatMapGradient extends StatelessWidget { width: 1, ), gradient: LinearGradient( - begin: AlignmentDirectional.centerEnd, - end: AlignmentDirectional.centerStart, + begin: AlignmentDirectional.centerStart, + end: AlignmentDirectional.centerEnd, colors: _heatMapColors(), ), ), diff --git a/lib/pages/analytics/modules/occupancy/widgets/occupancy_painter.dart b/lib/pages/analytics/modules/occupancy/widgets/occupancy_painter.dart index 633b8c54..b654d64e 100644 --- a/lib/pages/analytics/modules/occupancy/widgets/occupancy_painter.dart +++ b/lib/pages/analytics/modules/occupancy/widgets/occupancy_painter.dart @@ -28,11 +28,11 @@ class OccupancyPainter extends CustomPainter { @override void paint(Canvas canvas, Size size) { - final Paint fillPaint = Paint(); - final Paint borderPaint = Paint() + final fillPaint = Paint(); + final borderPaint = Paint() ..color = ColorsManager.grayBorder.withValues(alpha: 0.4) ..style = PaintingStyle.stroke; - final Paint hoveredBorderPaint = Paint() + final hoveredBorderPaint = Paint() ..color = Colors.black ..style = PaintingStyle.stroke ..strokeWidth = 1.5; @@ -48,7 +48,6 @@ class OccupancyPainter extends CustomPainter { final rect = Rect.fromLTWH(x, y, cellSize, cellSize); canvas.drawRect(rect, fillPaint); - // Highlight the hovered item if (hoveredItem != null && hoveredItem!.index == item.index) { canvas.drawRect(rect, hoveredBorderPaint); } else { @@ -73,16 +72,16 @@ class OccupancyPainter extends CustomPainter { } void _drawDashedLine(Canvas canvas, Offset start, Offset end, Paint paint) { - const double dashWidth = 2.0; - const double dashSpace = 4.0; - final double totalLength = (end - start).distance; - final Offset direction = (end - start) / (end - start).distance; + const dashWidth = 2.0; + const dashSpace = 4.0; + final totalLength = (end - start).distance; + final direction = (end - start) / (end - start).distance; - double currentLength = 0.0; + var currentLength = 0.0; while (currentLength < totalLength) { - final Offset dashStart = start + direction * currentLength; - final double nextLength = currentLength + dashWidth; - final Offset dashEnd = + final dashStart = start + direction * currentLength; + final nextLength = currentLength + dashWidth; + final dashEnd = start + direction * (nextLength < totalLength ? nextLength : totalLength); canvas.drawLine(dashStart, dashEnd, paint); currentLength = nextLength + dashSpace; @@ -91,8 +90,9 @@ class OccupancyPainter extends CustomPainter { Color _getColor(int value) { if (maxValue == 0) return ColorsManager.vividBlue.withValues(alpha: 0); - final opacity = value.clamp(0, maxValue) / maxValue; - return ColorsManager.vividBlue.withValues(alpha: opacity); + final clampedValue = 0.075 + (1 * value.clamp(0, maxValue) / maxValue); + final opacity = value == 0 ? 0 : clampedValue; + return ColorsManager.vividBlue.withValues(alpha: opacity.toDouble()); } @override