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

Merge branch '50-save-last-game-settings' into 'master'

Resolve "Save last game settings"

Closes #50

See merge request !43
parents 09ac224c 065a7a0c
No related branches found
No related tags found
1 merge request!43Resolve "Save last game settings"
Pipeline #1838 passed
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
app.versionName=0.0.39
app.versionCode=39
app.versionName=0.0.40
app.versionCode=40
Save/retrieve game settings
Sauvegarde et recharge des paramètres de jeu
import 'package:flutter/foundation.dart';
import 'package:shared_preferences/shared_preferences.dart';
class Data extends ChangeNotifier {
......@@ -12,9 +13,12 @@ class Data extends ChangeNotifier {
List get availableSkins => _availableSkins;
// Application default configuration
String _level = 'medium';
String _size = '3x3';
String _skin = 'default';
String _level = null;
String _levelDefault = 'medium';
String _size = null;
String _sizeDefault = '3x3';
String _skin = null;
String _skinDefault = 'default';
bool _showConflicts = false;
// Game data
......@@ -78,7 +82,7 @@ class Data extends ChangeNotifier {
}
}
setParameterValue(String parameterCode, String parameterValue) {
setParameterValue(String parameterCode, String parameterValue) async {
switch(parameterCode) {
case 'difficulty': { updateLevel = parameterValue; }
break;
......@@ -87,6 +91,15 @@ class Data extends ChangeNotifier {
case 'skin': { updateSkin = parameterValue; }
break;
}
final prefs = await SharedPreferences.getInstance();
prefs.setString(parameterCode, parameterValue);
}
void initParametersValues() async {
final prefs = await SharedPreferences.getInstance();
setParameterValue('difficulty', prefs.getString('difficulty') ?? _levelDefault);
setParameterValue('size', prefs.getString('size') ?? _sizeDefault);
setParameterValue('skin', prefs.getString('skin') ?? _skinDefault);
}
List get cells => _cells;
......
......@@ -7,9 +7,22 @@ import '../layout/parameters.dart';
import '../provider/data.dart';
import '../utils/game_utils.dart';
class Home extends StatelessWidget {
class Home extends StatefulWidget {
static const String id = 'home';
@override
_HomeState createState() => _HomeState();
}
class _HomeState extends State<Home> {
@override
void initState() {
super.initState();
Data myProvider = Provider.of<Data>(context, listen: false);
myProvider.initParametersValues();
}
@override
Widget build(BuildContext context) {
Data myProvider = Provider.of<Data>(context);
......
......@@ -35,7 +35,7 @@ packages:
name: charcode
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
version: "1.3.1"
clock:
dependency: transitive
description:
......@@ -57,6 +57,20 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.2.0"
ffi:
dependency: transitive
description:
name: ffi
url: "https://pub.dartlang.org"
source: hosted
version: "1.1.2"
file:
dependency: transitive
description:
name: file
url: "https://pub.dartlang.org"
source: hosted
version: "6.1.2"
flutter:
dependency: "direct main"
description: flutter
......@@ -67,6 +81,18 @@ packages:
description: flutter
source: sdk
version: "0.0.0"
flutter_web_plugins:
dependency: transitive
description: flutter
source: sdk
version: "0.0.0"
js:
dependency: transitive
description:
name: js
url: "https://pub.dartlang.org"
source: hosted
version: "0.6.3"
matcher:
dependency: transitive
description:
......@@ -80,7 +106,7 @@ packages:
name: meta
url: "https://pub.dartlang.org"
source: hosted
version: "1.4.0"
version: "1.7.0"
nested:
dependency: transitive
description:
......@@ -95,6 +121,48 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "1.8.0"
path_provider_linux:
dependency: transitive
description:
name: path_provider_linux
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
path_provider_platform_interface:
dependency: transitive
description:
name: path_provider_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
path_provider_windows:
dependency: transitive
description:
name: path_provider_windows
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.3"
platform:
dependency: transitive
description:
name: platform
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.0"
plugin_platform_interface:
dependency: transitive
description:
name: plugin_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
process:
dependency: transitive
description:
name: process
url: "https://pub.dartlang.org"
source: hosted
version: "4.2.3"
provider:
dependency: "direct main"
description:
......@@ -102,6 +170,48 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "5.0.0"
shared_preferences:
dependency: "direct main"
description:
name: shared_preferences
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.6"
shared_preferences_linux:
dependency: transitive
description:
name: shared_preferences_linux
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
shared_preferences_macos:
dependency: transitive
description:
name: shared_preferences_macos
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
shared_preferences_platform_interface:
dependency: transitive
description:
name: shared_preferences_platform_interface
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.0"
shared_preferences_web:
dependency: transitive
description:
name: shared_preferences_web
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.1"
shared_preferences_windows:
dependency: transitive
description:
name: shared_preferences_windows
url: "https://pub.dartlang.org"
source: hosted
version: "2.0.2"
sky_engine:
dependency: transitive
description: flutter
......@@ -148,7 +258,7 @@ packages:
name: test_api
url: "https://pub.dartlang.org"
source: hosted
version: "0.4.0"
version: "0.4.1"
typed_data:
dependency: transitive
description:
......@@ -163,6 +273,20 @@ packages:
url: "https://pub.dartlang.org"
source: hosted
version: "2.1.0"
win32:
dependency: transitive
description:
name: win32
url: "https://pub.dartlang.org"
source: hosted
version: "2.2.5"
xdg_directories:
dependency: transitive
description:
name: xdg_directories
url: "https://pub.dartlang.org"
source: hosted
version: "0.2.0"
sdks:
dart: ">=2.12.0 <3.0.0"
flutter: ">=1.16.0"
dart: ">=2.13.0 <3.0.0"
flutter: ">=2.0.0"
......@@ -11,6 +11,7 @@ dependencies:
sdk: flutter
provider: ^5.0.0
badges: ^2.0.1
shared_preferences: ^2.0.6
dev_dependencies:
flutter_test:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment