From d5b3e0adedeecfe8c64585657e6d0b3cf2f04a04 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr>
Date: Fri, 24 Nov 2023 23:51:24 +0100
Subject: [PATCH] Add controlable parameter on graph page

---
 android/gradle.properties          |  4 ++--
 lib/ui/painters/graph_painter.dart |  7 ++++---
 lib/ui/screens/graph_page.dart     | 24 +++++++++++++++++++++---
 pubspec.yaml                       |  2 +-
 4 files changed, 28 insertions(+), 9 deletions(-)

diff --git a/android/gradle.properties b/android/gradle.properties
index a080b10..4172535 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=1.0.33
-app.versionCode=34
+app.versionName=1.0.34
+app.versionCode=35
diff --git a/lib/ui/painters/graph_painter.dart b/lib/ui/painters/graph_painter.dart
index 90c17a4..ac9358c 100644
--- a/lib/ui/painters/graph_painter.dart
+++ b/lib/ui/painters/graph_painter.dart
@@ -5,7 +5,9 @@ import 'package:flutter/material.dart';
 import 'package:random/config/app_colors.dart';
 
 class GraphPainter extends CustomPainter {
-  const GraphPainter();
+  const GraphPainter({required this.linesCount});
+
+  final int linesCount;
 
   double random(double max) {
     return 0.05 * max + Random().nextDouble() * max * 0.9;
@@ -40,8 +42,7 @@ class GraphPainter extends CustomPainter {
     Paint paintLine = Paint();
     paintLine.style = PaintingStyle.fill;
 
-    int linesCount = 20;
-    for (int i = 0; i < linesCount; i++) {
+    for (int i = 0; i < this.linesCount; i++) {
       paintLine.color = getRandomColor();
       paintLine.strokeWidth = Random().nextDouble() * 4 + 2;
 
diff --git a/lib/ui/screens/graph_page.dart b/lib/ui/screens/graph_page.dart
index a0cfb1c..892151e 100644
--- a/lib/ui/screens/graph_page.dart
+++ b/lib/ui/screens/graph_page.dart
@@ -2,9 +2,16 @@ import 'package:flutter/material.dart';
 
 import 'package:random/ui/painters/graph_painter.dart';
 
-class GraphPage extends StatelessWidget {
+class GraphPage extends StatefulWidget {
   const GraphPage({super.key});
 
+  @override
+  State<GraphPage> createState() => _GraphPageState();
+}
+
+class _GraphPageState extends State<GraphPage> {
+  double _currentSliderValue = 20;
+
   @override
   Widget build(BuildContext context) {
     double boardWidth = MediaQuery.of(context).size.width;
@@ -35,12 +42,23 @@ class GraphPage extends StatelessWidget {
                         child: CustomPaint(
                           size: Size(boardWidth, boardWidth),
                           willChange: false,
-                          painter: GraphPainter(),
-                          isComplex: true,
+                          painter: GraphPainter(linesCount: _currentSliderValue.toInt()),
                         ),
                       ),
                     ),
                   ),
+                  Slider(
+                    value: _currentSliderValue,
+                    min: 10,
+                    max: 50,
+                    divisions: 5,
+                    label: _currentSliderValue.round().toString(),
+                    onChanged: (double value) {
+                      setState(() {
+                        _currentSliderValue = value;
+                      });
+                    },
+                  ),
                 ],
               ),
             ),
diff --git a/pubspec.yaml b/pubspec.yaml
index da0ce02..8c68fd5 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -3,7 +3,7 @@ description: A random application, for testing purpose only.
 
 publish_to: 'none'
 
-version: 1.0.33+34
+version: 1.0.34+35
 
 environment:
   sdk: '^3.0.0'
-- 
GitLab