From 0502b39a7a6d2fb87c36bfb6d1cf42aa9ec6938d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr>
Date: Mon, 30 Oct 2023 21:19:50 +0100
Subject: [PATCH] Compute gradient color from bar height

---
 android/gradle.properties                         |  4 ++--
 fastlane/metadata/android/en-US/changelogs/15.txt |  1 +
 fastlane/metadata/android/fr-FR/changelogs/15.txt |  1 +
 lib/ui/widgets/charts/custom_bar_chart.dart       | 10 ++++++----
 pubspec.yaml                                      |  2 +-
 5 files changed, 11 insertions(+), 7 deletions(-)
 create mode 100644 fastlane/metadata/android/en-US/changelogs/15.txt
 create mode 100644 fastlane/metadata/android/fr-FR/changelogs/15.txt

diff --git a/android/gradle.properties b/android/gradle.properties
index 81949df..957c40b 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,5 +1,5 @@
 org.gradle.jvmargs=-Xmx1536M
 android.useAndroidX=true
 android.enableJetifier=true
-app.versionName=0.0.14
-app.versionCode=14
+app.versionName=0.0.15
+app.versionCode=15
diff --git a/fastlane/metadata/android/en-US/changelogs/15.txt b/fastlane/metadata/android/en-US/changelogs/15.txt
new file mode 100644
index 0000000..518ef77
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/15.txt
@@ -0,0 +1 @@
+Gradients uniformisation on bars of same charts.
diff --git a/fastlane/metadata/android/fr-FR/changelogs/15.txt b/fastlane/metadata/android/fr-FR/changelogs/15.txt
new file mode 100644
index 0000000..7c79dec
--- /dev/null
+++ b/fastlane/metadata/android/fr-FR/changelogs/15.txt
@@ -0,0 +1 @@
+Uniformisation des dégradés de couleur entre les barres du même graphique.
diff --git a/lib/ui/widgets/charts/custom_bar_chart.dart b/lib/ui/widgets/charts/custom_bar_chart.dart
index 166c702..a718813 100644
--- a/lib/ui/widgets/charts/custom_bar_chart.dart
+++ b/lib/ui/widgets/charts/custom_bar_chart.dart
@@ -55,7 +55,7 @@ class CustomBarChart extends StatelessWidget {
       required double value,
       required Color barColor,
       required double barWidth}) {
-    final gradient = this.getGradient(barColor);
+    final gradient = this.getGradient(barColor, value, this.getMaxCountsValue());
     final borderColor = barColor.darken(20);
 
     return BarChartGroupData(
@@ -75,10 +75,12 @@ class CustomBarChart extends StatelessWidget {
     );
   }
 
-  LinearGradient getGradient(Color baseColor) {
+  LinearGradient getGradient(Color baseColor, double value, double maxValue) {
+    double alignmentTopValue = value != 0.0 ? -2 * maxValue / value + 1 : 0;
+
     return LinearGradient(
-      begin: Alignment.topLeft,
-      end: Alignment(0.8, 1),
+      begin: Alignment(-1, alignmentTopValue),
+      end: Alignment(1, 1),
       colors: <Color>[
         baseColor.lighten(30),
         baseColor,
diff --git a/pubspec.yaml b/pubspec.yaml
index 96e1872..b56f499 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,7 +3,7 @@ description: Display scrobbles data and charts
 
 publish_to: 'none'
 
-version: 0.0.14+14
+version: 0.0.15+15
 
 environment:
   sdk: '^3.0.0'
-- 
GitLab