Skip to content
Snippets Groups Projects
Commit b9bb4f6f authored by Benoît Harrault's avatar Benoît Harrault
Browse files

Improve menu and activities

parent f0050cdd
No related branches found
No related tags found
1 merge request!27Resolve "Improve menu / activities"
Pipeline #3854 passed
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
app.versionName=1.0.18 app.versionName=1.0.19
app.versionCode=19 app.versionCode=20
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:random/provider/data.dart'; import 'package:random/provider/data.dart';
class DemoPage extends StatelessWidget { class ActivityDemoPage extends StatelessWidget {
static String code = 'demo'; static const String code = 'demo';
static const String route = '/' + code;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
...@@ -15,8 +15,11 @@ class DemoPage extends StatelessWidget { ...@@ -15,8 +15,11 @@ class DemoPage extends StatelessWidget {
elevation: 0, elevation: 0,
actions: <Widget>[ actions: <Widget>[
IconButton( IconButton(
icon: const Icon(Icons.loop), icon: const Icon(Icons.arrow_back),
onPressed: () => print(myProvider), onPressed: () {
myProvider.resetActivity();
Navigator.pop(context);
},
), ),
], ],
), ),
......
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.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'; import 'package:random/provider/data.dart';
class GraphPage extends StatelessWidget { class ActivityGraphPage extends StatelessWidget {
static String code = 'graph'; static const String code = 'graph';
static const String route = '/' + code;
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
...@@ -15,7 +16,15 @@ class GraphPage extends StatelessWidget { ...@@ -15,7 +16,15 @@ class GraphPage extends StatelessWidget {
Scaffold pageContent = Scaffold( Scaffold pageContent = Scaffold(
appBar: AppBar( appBar: AppBar(
elevation: 0, elevation: 0,
actions: <Widget>[], actions: <Widget>[
IconButton(
icon: const Icon(Icons.arrow_back),
onPressed: () {
myProvider.resetActivity();
Navigator.pop(context);
},
),
],
), ),
backgroundColor: Colors.blue, backgroundColor: Colors.blue,
body: SafeArea( body: SafeArea(
......
...@@ -3,8 +3,8 @@ import 'package:flutter/services.dart'; ...@@ -3,8 +3,8 @@ import 'package:flutter/services.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:random/provider/data.dart'; import 'package:random/provider/data.dart';
import 'package:random/screens/demo.dart'; import 'package:random/activities/ActivityDemoPage.dart';
import 'package:random/screens/graph.dart'; import 'package:random/activities/ActivityGraphPage.dart';
import 'package:random/screens/home.dart'; import 'package:random/screens/home.dart';
void main() { void main() {
...@@ -27,16 +27,16 @@ class MyApp extends StatelessWidget { ...@@ -27,16 +27,16 @@ class MyApp extends StatelessWidget {
home: Home(), home: Home(),
onGenerateRoute: (settings) { onGenerateRoute: (settings) {
switch (settings.name) { switch (settings.name) {
case '/demo': case ActivityDemoPage.route:
{ {
return MaterialPageRoute( return MaterialPageRoute(
builder: (context) => DemoPage(), builder: (context) => ActivityDemoPage(),
); );
} }
case '/graph': case ActivityGraphPage.route:
{ {
return MaterialPageRoute( return MaterialPageRoute(
builder: (context) => GraphPage(), builder: (context) => ActivityGraphPage(),
); );
} }
......
File moved
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
class Data extends ChangeNotifier {} class Data extends ChangeNotifier {
void resetActivity() {
print('reset activity');
}
}
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:random/provider/data.dart'; import 'package:random/activities/ActivityDemoPage.dart';
import 'package:random/screens/demo.dart'; import 'package:random/activities/ActivityGraphPage.dart';
import 'package:random/screens/graph.dart';
class Home extends StatelessWidget { class Home extends StatelessWidget {
static const String id = 'home'; static const String id = 'home';
Future<void> resetGame(Data myProvider) async {}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
Data myProvider = Provider.of<Data>(context); double screenWidth = MediaQuery.of(context).size.width;
Container _buildMenuItemContainer(String code, Color color) { Container _menuItem(String activityCode) {
double imageSize = 150; double imageSize = screenWidth / 4;
String imageAsset = 'assets/menu/' + code + '.png'; String imageAsset = 'assets/menu/' + activityCode + '.png';
return Container( return Container(
margin: EdgeInsets.all(2), margin: EdgeInsets.all(2),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
border: Border.all(
color: Colors.teal,
width: 8,
),
),
child: TextButton( child: TextButton(
style: TextButton.styleFrom( style: TextButton.styleFrom(
padding: EdgeInsets.all(15), padding: EdgeInsets.all(4),
backgroundColor: color, backgroundColor: Colors.lightBlue,
), ),
child: Image( child: Image(
image: AssetImage(imageAsset), image: AssetImage(imageAsset),
...@@ -40,10 +29,9 @@ class Home extends StatelessWidget { ...@@ -40,10 +29,9 @@ class Home extends StatelessWidget {
fit: BoxFit.fill, fit: BoxFit.fill,
), ),
onPressed: () { onPressed: () {
resetGame(myProvider);
Navigator.pushNamed( Navigator.pushNamed(
context, context,
'/' + code, '/' + activityCode,
); );
}, },
), ),
...@@ -58,8 +46,8 @@ class Home extends StatelessWidget { ...@@ -58,8 +46,8 @@ class Home extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.center,
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: <Widget>[ children: <Widget>[
_buildMenuItemContainer(DemoPage.code, Colors.pink), _menuItem(ActivityDemoPage.code),
_buildMenuItemContainer(GraphPage.code, Colors.lightBlue), _menuItem(ActivityGraphPage.code),
], ],
), ),
), ),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment