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