Select Git revision
-
Benoît Harrault authoredBenoît Harrault authored
data.dart 2.18 KiB
import 'package:flutter/foundation.dart';
import 'package:shared_preferences/shared_preferences.dart';
class Data extends ChangeNotifier {
// Configuration available values
List _availableLevelValues = ['easy', 'normal', 'hard', 'nightmare'];
List _availableSkinValues = ['colors', 'retro'];
List get availableLevelValues => _availableLevelValues;
List get availableSkinValues => _availableSkinValues;
// Application default configuration
String _level = '';
String _levelDefault = 'normal';
String _skin = '';
String _skinDefault = 'colors';
// Game data
bool _gameIsRunning = false;
bool _gameWon = false;
String get level => _level;
void updateLevel(String level) {
_level = level;
notifyListeners();
}
String get skin => _skin;
void updateSkin(String skin) {
_skin = skin;
notifyListeners();
}
getParameterValue(String parameterCode) {
switch(parameterCode) {
case 'level': { return _level; }
break;
case 'skin': { return _skin; }
break;
}
}
List getParameterAvailableValues(String parameterCode) {
switch(parameterCode) {
case 'level': { return _availableLevelValues; }
break;
case 'skin': { return _availableSkinValues; }
break;
}
return [];
}
setParameterValue(String parameterCode, String parameterValue) async {
switch(parameterCode) {
case 'level': { updateLevel(parameterValue); }
break;
case 'skin': { updateSkin(parameterValue); }
break;
}
final prefs = await SharedPreferences.getInstance();
prefs.setString(parameterCode, parameterValue);
}
void initParametersValues() async {
final prefs = await SharedPreferences.getInstance();
setParameterValue('level', prefs.getString('level') ?? _levelDefault);
setParameterValue('skin', prefs.getString('skin') ?? _skinDefault);
}