Select Git revision
data.dart
-
Benoît Harrault authoredBenoît Harrault authored
data.dart 3.40 KiB
import 'package:flutter/foundation.dart';
import '../utils/shared_prefs.dart';
import '../utils/constants.dart';
class Data extends ChangeNotifier {
// settings
final SharedPrefs _sharedPrefs = SharedPrefs();
// screen settings
bool _gameModeValue = false;
String _levelValue = defaultLevel;
// randomization
String _secretWord = '';
bool _searching = false;
String _clue = '';
List<String> _hiddenWord = [];
List<String> _usedLetters = [];
bool get searching => _searching;
set searching(bool value) {
_searching = value;
notifyListeners();
}
// scores
int _errors = 0;
int _victoryCount = 0;
int _defeatCount = 0;
Data() {
_getPrefs();
}
void _getPrefs() async {
await _sharedPrefs.init();
_gameModeValue = onlineGameMode.keys.firstWhere(
(k) => onlineGameMode[k]?.contains(_sharedPrefs.level) ?? false,
orElse: () => false);
_levelValue = onlineGameMode[_gameModeValue]?.contains(_sharedPrefs.level) ?? false
? _sharedPrefs.level
: onlineGameMode[_gameModeValue]?.first ?? '';
_victoryCount = _sharedPrefs.victoryCount;
_defeatCount = _sharedPrefs.defeatCount;
notifyListeners();
}
bool get gameModePref => _sharedPrefs.gameMode;
String get levelPref => (_sharedPrefs.level != '')
? _sharedPrefs.level
: onlineGameMode[gameModePref]?.first ?? '';
void resetValues() => _getPrefs();
set setPrefGameMode(bool prefGameMode) {
_sharedPrefs.gameMode = prefGameMode;
notifyListeners();
}
set setPrefLevel(String prefLevel) {
_sharedPrefs.level = prefLevel;
notifyListeners();
}
bool get gameModeValue => _gameModeValue;