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

Move settings to home page

parent b2103d53
No related branches found
No related tags found
1 merge request!22Resolve "Move parameters to home page"
Pipeline #1763 passed
......@@ -2,5 +2,5 @@ org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
android.enableR8=true
app.versionName=1.2.0
app.versionCode=11
app.versionName=1.2.1
app.versionCode=12
......@@ -3,7 +3,6 @@ import 'package:provider/provider.dart';
import 'provider/data.dart';
import 'screens/home.dart';
import 'screens/settings.dart';
import 'screens/game.dart';
import 'screens/scores.dart';
import './utils/constants.dart';
......@@ -27,7 +26,6 @@ class Hangman extends StatelessWidget {
routes: {
Home.id: (context) => Home(),
Game.id: (context) => Game(),
Settings.id: (context) => Settings(),
Scores.id: (context) => Scores(),
},
);
......
......@@ -65,7 +65,8 @@ class Data extends ChangeNotifier {
set updateGameMode(bool value) {
_gameModeValue = value;
_levelValue = onlineGameMode[value].first;
setPrefGameMode = gameModeValue;
updateLevel = onlineGameMode[value].first;
notifyListeners();
}
......@@ -73,6 +74,7 @@ class Data extends ChangeNotifier {
set updateLevel(String value) {
_levelValue = value;
setPrefLevel = levelValue;
notifyListeners();
}
......
......@@ -64,6 +64,41 @@ class Home extends StatelessWidget {
),
),
),
Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text('Mode en ligne'),
Switch(
value: _myProvider.gameModeValue,
onChanged: (bool value) => _myProvider.updateGameMode = value,
activeTrackColor: Color(board),
activeColor: Colors.greenAccent[400],
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text('Niveau'),
DropdownButton<String>(
value: _myProvider.levelValue ?? onlineGameMode[_myProvider.gameModeValue].first,
items: onlineGameMode[_myProvider.gameModeValue]
.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList(),
onChanged: (String value) => _myProvider.updateLevel = value,
),
],
),
],
),
RaisedButton.icon(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(10.0))),
......
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../provider/data.dart';
import '../utils/constants.dart';
class Settings extends StatelessWidget {
static const String id = 'settings';
@override
Widget build(BuildContext context) {
Data _myProvider = Provider.of<Data>(context);
return Scaffold(
appBar: AppBar(title: Text('Réglages')),
body: SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.only(top: 30.0, left: 30.0, right: 30.0),
child: Column(
children: [
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text('Mode en ligne'),
Switch(
value: _myProvider.gameModeValue,
onChanged: (bool value) => _myProvider.updateGameMode = value,
activeTrackColor: Color(board),
activeColor: Colors.greenAccent[400],
),
],
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Text('Niveau'),
DropdownButton<String>(
value: _myProvider.levelValue ?? onlineGameMode[_myProvider.gameModeValue].first,
items: onlineGameMode[_myProvider.gameModeValue]
.map<DropdownMenuItem<String>>((String value) {
return DropdownMenuItem<String>(
value: value,
child: Text(value),
);
}).toList(),
onChanged: (String value) => _myProvider.updateLevel = value,
),
],
),
Divider(color: Colors.grey),
Padding(
padding: const EdgeInsets.only(top: 20.0),
child: RaisedButton.icon(
shape:
RoundedRectangleBorder(borderRadius: BorderRadius.all(Radius.circular(10.0))),
color: Color(board),
padding: EdgeInsets.symmetric(vertical: 10.0, horizontal: 20.0),
onPressed: () {
_myProvider.setPrefGameMode = _myProvider.gameModeValue;
_myProvider.setPrefLevel = _myProvider.levelValue;
Navigator.pop(context);
},
icon: Icon(Icons.save, color: Colors.white),
label: Text(
'Enregistrer',
style: TextStyle(
color: Colors.white,
fontSize: 18.0,
),
),
),
)
],
),
),
),
);
}
}
......@@ -3,7 +3,6 @@ import 'package:flutter/services.dart' show SystemNavigator;
import 'package:provider/provider.dart';
import '../provider/data.dart';
import '../screens/settings.dart';
import '../screens/scores.dart';
class MyAppBar extends StatelessWidget implements PreferredSizeWidget {
......@@ -21,14 +20,6 @@ class MyAppBar extends StatelessWidget implements PreferredSizeWidget {
title: Text('Hangman'),
automaticallyImplyLeading: false,
actions: [
IconButton(
icon: Icon(Icons.settings),
onPressed: () {
_myProvider.resetValues();
Scaffold.of(context).removeCurrentSnackBar();
Navigator.pushNamed(context, Settings.id);
},
),
PopupMenuButton<String>(
onSelected: (String value) {
switch (value) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment