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

Save/retrieve settings

parent 09ac224c
No related branches found
No related tags found
1 merge request!43Resolve "Save last game settings"
Pipeline #1836 passed
org.gradle.jvmargs=-Xmx1536M org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true android.useAndroidX=true
android.enableJetifier=true android.enableJetifier=true
app.versionName=0.0.39 app.versionName=0.0.40
app.versionCode=39 app.versionCode=40
Save/retrieve game settings
Sauvegarde et recharge des paramètres de jeu
import 'package:flutter/foundation.dart'; import 'package:flutter/foundation.dart';
import 'package:shared_preferences/shared_preferences.dart';
class Data extends ChangeNotifier { class Data extends ChangeNotifier {
...@@ -12,9 +13,12 @@ class Data extends ChangeNotifier { ...@@ -12,9 +13,12 @@ class Data extends ChangeNotifier {
List get availableSkins => _availableSkins; List get availableSkins => _availableSkins;
// Application default configuration // Application default configuration
String _level = 'medium'; String _level = null;
String _size = '3x3'; String _levelDefault = 'medium';
String _skin = 'default'; String _size = null;
String _sizeDefault = '3x3';
String _skin = null;
String _skinDefault = 'default';
bool _showConflicts = false; bool _showConflicts = false;
// Game data // Game data
...@@ -78,7 +82,7 @@ class Data extends ChangeNotifier { ...@@ -78,7 +82,7 @@ class Data extends ChangeNotifier {
} }
} }
setParameterValue(String parameterCode, String parameterValue) { setParameterValue(String parameterCode, String parameterValue) async {
switch(parameterCode) { switch(parameterCode) {
case 'difficulty': { updateLevel = parameterValue; } case 'difficulty': { updateLevel = parameterValue; }
break; break;
...@@ -87,6 +91,15 @@ class Data extends ChangeNotifier { ...@@ -87,6 +91,15 @@ class Data extends ChangeNotifier {
case 'skin': { updateSkin = parameterValue; } case 'skin': { updateSkin = parameterValue; }
break; 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; List get cells => _cells;
......
...@@ -7,9 +7,22 @@ import '../layout/parameters.dart'; ...@@ -7,9 +7,22 @@ import '../layout/parameters.dart';
import '../provider/data.dart'; import '../provider/data.dart';
import '../utils/game_utils.dart'; import '../utils/game_utils.dart';
class Home extends StatelessWidget { class Home extends StatefulWidget {
static const String id = 'home'; 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 @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
Data myProvider = Provider.of<Data>(context); Data myProvider = Provider.of<Data>(context);
......
...@@ -35,7 +35,7 @@ packages: ...@@ -35,7 +35,7 @@ packages:
name: charcode name: charcode
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0" version: "1.3.1"
clock: clock:
dependency: transitive dependency: transitive
description: description:
...@@ -57,6 +57,20 @@ packages: ...@@ -57,6 +57,20 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.2.0" 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: flutter:
dependency: "direct main" dependency: "direct main"
description: flutter description: flutter
...@@ -67,6 +81,18 @@ packages: ...@@ -67,6 +81,18 @@ packages:
description: flutter description: flutter
source: sdk source: sdk
version: "0.0.0" 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: matcher:
dependency: transitive dependency: transitive
description: description:
...@@ -80,7 +106,7 @@ packages: ...@@ -80,7 +106,7 @@ packages:
name: meta name: meta
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.4.0" version: "1.7.0"
nested: nested:
dependency: transitive dependency: transitive
description: description:
...@@ -95,6 +121,48 @@ packages: ...@@ -95,6 +121,48 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "1.8.0" 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: provider:
dependency: "direct main" dependency: "direct main"
description: description:
...@@ -102,6 +170,48 @@ packages: ...@@ -102,6 +170,48 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "5.0.0" 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: sky_engine:
dependency: transitive dependency: transitive
description: flutter description: flutter
...@@ -148,7 +258,7 @@ packages: ...@@ -148,7 +258,7 @@ packages:
name: test_api name: test_api
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "0.4.0" version: "0.4.1"
typed_data: typed_data:
dependency: transitive dependency: transitive
description: description:
...@@ -163,6 +273,20 @@ packages: ...@@ -163,6 +273,20 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "2.1.0" 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: sdks:
dart: ">=2.12.0 <3.0.0" dart: ">=2.13.0 <3.0.0"
flutter: ">=1.16.0" flutter: ">=2.0.0"
...@@ -11,6 +11,7 @@ dependencies: ...@@ -11,6 +11,7 @@ dependencies:
sdk: flutter sdk: flutter
provider: ^5.0.0 provider: ^5.0.0
badges: ^2.0.1 badges: ^2.0.1
shared_preferences: ^2.0.6
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment