From b9bb4f6fea8fad83f91f73bf2bb5f8e8661f7625 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Beno=C3=AEt=20Harrault?= <benoit@harrault.fr>
Date: Wed, 14 Dec 2022 09:44:59 +0100
Subject: [PATCH] Improve menu and activities

---
 android/gradle.properties                     |  4 +--
 .../ActivityDemoPage.dart}                    | 13 ++++---
 .../ActivityGraphPage.dart}                   | 17 +++++++---
 lib/main.dart                                 | 12 +++----
 .../{graph_painter.dart => GraphPainter.dart} |  0
 lib/provider/data.dart                        |  6 +++-
 lib/screens/home.dart                         | 34 ++++++-------------
 7 files changed, 45 insertions(+), 41 deletions(-)
 rename lib/{screens/demo.dart => activities/ActivityDemoPage.dart} (79%)
 rename lib/{screens/graph.dart => activities/ActivityGraphPage.dart} (80%)
 rename lib/painters/{graph_painter.dart => GraphPainter.dart} (100%)

diff --git a/android/gradle.properties b/android/gradle.properties
index 53f7ea2..6d853d4 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.18
-app.versionCode=19
+app.versionName=1.0.19
+app.versionCode=20
diff --git a/lib/screens/demo.dart b/lib/activities/ActivityDemoPage.dart
similarity index 79%
rename from lib/screens/demo.dart
rename to lib/activities/ActivityDemoPage.dart
index a9c5656..a3ad6c1 100644
--- a/lib/screens/demo.dart
+++ b/lib/activities/ActivityDemoPage.dart
@@ -1,10 +1,10 @@
 import 'package:flutter/material.dart';
 import 'package:provider/provider.dart';
-
 import 'package:random/provider/data.dart';
 
-class DemoPage extends StatelessWidget {
-  static String code = 'demo';
+class ActivityDemoPage extends StatelessWidget {
+  static const String code = 'demo';
+  static const String route = '/' + code;
 
   @override
   Widget build(BuildContext context) {
@@ -15,8 +15,11 @@ class DemoPage extends StatelessWidget {
         elevation: 0,
         actions: <Widget>[
           IconButton(
-            icon: const Icon(Icons.loop),
-            onPressed: () => print(myProvider),
+            icon: const Icon(Icons.arrow_back),
+            onPressed: () {
+              myProvider.resetActivity();
+              Navigator.pop(context);
+            },
           ),
         ],
       ),
diff --git a/lib/screens/graph.dart b/lib/activities/ActivityGraphPage.dart
similarity index 80%
rename from lib/screens/graph.dart
rename to lib/activities/ActivityGraphPage.dart
index 9a0ca15..bb2fed8 100644
--- a/lib/screens/graph.dart
+++ b/lib/activities/ActivityGraphPage.dart
@@ -1,11 +1,12 @@
 import 'package:flutter/material.dart';
 import 'package:provider/provider.dart';
-import 'package:random/painters/graph_painter.dart';
+import 'package:random/painters/GraphPainter.dart';
 
 import 'package:random/provider/data.dart';
 
-class GraphPage extends StatelessWidget {
-  static String code = 'graph';
+class ActivityGraphPage extends StatelessWidget {
+  static const String code = 'graph';
+  static const String route = '/' + code;
 
   @override
   Widget build(BuildContext context) {
@@ -15,7 +16,15 @@ class GraphPage extends StatelessWidget {
     Scaffold pageContent = Scaffold(
       appBar: AppBar(
         elevation: 0,
-        actions: <Widget>[],
+        actions: <Widget>[
+          IconButton(
+            icon: const Icon(Icons.arrow_back),
+            onPressed: () {
+              myProvider.resetActivity();
+              Navigator.pop(context);
+            },
+          ),
+        ],
       ),
       backgroundColor: Colors.blue,
       body: SafeArea(
diff --git a/lib/main.dart b/lib/main.dart
index b45097a..3dc7b4d 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -3,8 +3,8 @@ import 'package:flutter/services.dart';
 import 'package:provider/provider.dart';
 
 import 'package:random/provider/data.dart';
-import 'package:random/screens/demo.dart';
-import 'package:random/screens/graph.dart';
+import 'package:random/activities/ActivityDemoPage.dart';
+import 'package:random/activities/ActivityGraphPage.dart';
 import 'package:random/screens/home.dart';
 
 void main() {
@@ -27,16 +27,16 @@ class MyApp extends StatelessWidget {
           home: Home(),
           onGenerateRoute: (settings) {
             switch (settings.name) {
-              case '/demo':
+              case ActivityDemoPage.route:
                 {
                   return MaterialPageRoute(
-                    builder: (context) => DemoPage(),
+                    builder: (context) => ActivityDemoPage(),
                   );
                 }
-              case '/graph':
+              case ActivityGraphPage.route:
                 {
                   return MaterialPageRoute(
-                    builder: (context) => GraphPage(),
+                    builder: (context) => ActivityGraphPage(),
                   );
                 }
 
diff --git a/lib/painters/graph_painter.dart b/lib/painters/GraphPainter.dart
similarity index 100%
rename from lib/painters/graph_painter.dart
rename to lib/painters/GraphPainter.dart
diff --git a/lib/provider/data.dart b/lib/provider/data.dart
index 6b8cf9f..4859c99 100644
--- a/lib/provider/data.dart
+++ b/lib/provider/data.dart
@@ -1,3 +1,7 @@
 import 'package:flutter/foundation.dart';
 
-class Data extends ChangeNotifier {}
+class Data extends ChangeNotifier {
+  void resetActivity() {
+    print('reset activity');
+  }
+}
diff --git a/lib/screens/home.dart b/lib/screens/home.dart
index 2dd7dd6..a263e34 100644
--- a/lib/screens/home.dart
+++ b/lib/screens/home.dart
@@ -1,37 +1,26 @@
 import 'package:flutter/material.dart';
-import 'package:provider/provider.dart';
 
-import 'package:random/provider/data.dart';
-import 'package:random/screens/demo.dart';
-import 'package:random/screens/graph.dart';
+import 'package:random/activities/ActivityDemoPage.dart';
+import 'package:random/activities/ActivityGraphPage.dart';
 
 class Home extends StatelessWidget {
   static const String id = 'home';
 
-  Future<void> resetGame(Data myProvider) async {}
-
   @override
   Widget build(BuildContext context) {
-    Data myProvider = Provider.of<Data>(context);
+    double screenWidth = MediaQuery.of(context).size.width;
 
-    Container _buildMenuItemContainer(String code, Color color) {
-      double imageSize = 150;
+    Container _menuItem(String activityCode) {
+      double imageSize = screenWidth / 4;
 
-      String imageAsset = 'assets/menu/' + code + '.png';
+      String imageAsset = 'assets/menu/' + activityCode + '.png';
 
       return Container(
         margin: EdgeInsets.all(2),
-        decoration: BoxDecoration(
-          borderRadius: BorderRadius.circular(8),
-          border: Border.all(
-            color: Colors.teal,
-            width: 8,
-          ),
-        ),
         child: TextButton(
           style: TextButton.styleFrom(
-            padding: EdgeInsets.all(15),
-            backgroundColor: color,
+            padding: EdgeInsets.all(4),
+            backgroundColor: Colors.lightBlue,
           ),
           child: Image(
             image: AssetImage(imageAsset),
@@ -40,10 +29,9 @@ class Home extends StatelessWidget {
             fit: BoxFit.fill,
           ),
           onPressed: () {
-            resetGame(myProvider);
             Navigator.pushNamed(
               context,
-              '/' + code,
+              '/' + activityCode,
             );
           },
         ),
@@ -58,8 +46,8 @@ class Home extends StatelessWidget {
           crossAxisAlignment: CrossAxisAlignment.center,
           mainAxisSize: MainAxisSize.max,
           children: <Widget>[
-            _buildMenuItemContainer(DemoPage.code, Colors.pink),
-            _buildMenuItemContainer(GraphPage.code, Colors.lightBlue),
+            _menuItem(ActivityDemoPage.code),
+            _menuItem(ActivityGraphPage.code),
           ],
         ),
       ),
-- 
GitLab