From f86521db44ba1fd25d68401ced942fb50f077f40 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr>
Date: Tue, 11 Feb 2025 13:34:16 +0100
Subject: [PATCH] Fix hour/day heatmap last column

---
 fastlane/metadata/android/en-US/changelogs/76.txt | 1 +
 fastlane/metadata/android/fr-FR/changelogs/76.txt | 1 +
 lib/models/data/heatmap.dart                      | 4 ++--
 lib/ui/widgets/charts/heatmap.dart                | 5 +++--
 pubspec.yaml                                      | 2 +-
 5 files changed, 8 insertions(+), 5 deletions(-)
 create mode 100644 fastlane/metadata/android/en-US/changelogs/76.txt
 create mode 100644 fastlane/metadata/android/fr-FR/changelogs/76.txt

diff --git a/fastlane/metadata/android/en-US/changelogs/76.txt b/fastlane/metadata/android/en-US/changelogs/76.txt
new file mode 100644
index 0000000..ead5d8e
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/76.txt
@@ -0,0 +1 @@
+Fix hour/day heatmap last column.
diff --git a/fastlane/metadata/android/fr-FR/changelogs/76.txt b/fastlane/metadata/android/fr-FR/changelogs/76.txt
new file mode 100644
index 0000000..1c55189
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/76.txt
@@ -0,0 +1 @@
+Correction sur dernière colonne de la répartition par heure/jour.
diff --git a/lib/models/data/heatmap.dart b/lib/models/data/heatmap.dart
index 4722e2b..0b71a2a 100644
--- a/lib/models/data/heatmap.dart
+++ b/lib/models/data/heatmap.dart
@@ -16,7 +16,7 @@ class HeatmapData {
 
         Map<int, int> dataForThisDay = {};
         for (var hour in rawDataForThisDay.keys) {
-          dataForThisDay[int.parse(hour)] = int.parse(rawDataForThisDay[hour].toString());
+          dataForThisDay[int.parse(hour) % 24] = int.parse(rawDataForThisDay[hour].toString());
         }
 
         data[int.parse(day)] = dataForThisDay;
@@ -32,7 +32,7 @@ class HeatmapData {
     for (var day in data.keys) {
       Map<String, int> dayMap = {};
       data[day]?.forEach((hour, count) {
-        dayMap[hour.toString()] = count;
+        dayMap[(hour % 24).toString()] = count;
       });
       map[day.toString()] = dayMap;
     }
diff --git a/lib/ui/widgets/charts/heatmap.dart b/lib/ui/widgets/charts/heatmap.dart
index f78de04..f9cdf8d 100644
--- a/lib/ui/widgets/charts/heatmap.dart
+++ b/lib/ui/widgets/charts/heatmap.dart
@@ -34,7 +34,7 @@ class ChartHeatmap extends CustomChart {
         ScatterChartData(
           scatterSpots: getSpots(),
           minX: 0,
-          maxX: 24,
+          maxX: 23,
           minY: 0,
           maxY: 7,
           borderData: FlBorderData(show: false),
@@ -73,11 +73,12 @@ class ChartHeatmap extends CustomChart {
     final int maxCount = getMaxCount();
 
     chartData.data.forEach((day, hours) {
+      //   hours.removeWhere((h, i) => h == 24);
       hours.forEach((hour, count) {
         double normalizedValue = count / maxCount;
 
         spots.add(ScatterSpot(
-          hour.toDouble(),
+          (hour % 24).toDouble(),
           8 - day.toDouble(),
           dotPainter: FlDotSquarePainter(
             color: getColorFromNormalizedValue(normalizedValue),
diff --git a/pubspec.yaml b/pubspec.yaml
index b7a1f1a..f3653a3 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,7 +3,7 @@ description: Display scrobbles data and charts
 
 publish_to: "none"
 
-version: 0.8.3+75
+version: 0.8.4+76
 
 environment:
   sdk: "^3.0.0"
-- 
GitLab