Skip to content
Snippets Groups Projects
Select Git revision
  • c3fd7855a6babdcd2ad411e6a0546da71353c89d
  • master default protected
  • 61-upgrade-framework-and-dependencies
  • 42-improve-app-metadata
  • 17-improve-and-complete-offline-words-list-and-tips
  • 6-allow-translate-application
  • 9-improve-documentation
  • Release_1.10.0_44 protected
  • Release_1.9.2_43 protected
  • Release_1.9.1_42 protected
  • Release_1.9.0_41 protected
  • Release_1.8.0_40 protected
  • Release_1.7.0_39 protected
  • Release_1.6.0_38 protected
  • Release_1.5.2_37 protected
  • Release_1.5.1_36 protected
  • Release_1.5.0_35 protected
  • Release_1.4.1_34 protected
  • Release_1.4.0_33 protected
  • Release_1.3.2_32 protected
  • Release_1.3.1_31 protected
  • Release_1.3.0_30 protected
  • Release_1.2.18_29 protected
  • Release_1.2.17_28 protected
  • Release_1.2.16_27 protected
  • Release_1.2.15_26 protected
  • Release_1.2.14_25 protected
27 results

data.dart

Blame
  • data.dart 3.36 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 = _sharedPrefs.gameMode ??
            onlineGameMode.keys
                .firstWhere((k) => onlineGameMode[k].contains(_sharedPrefs.level), orElse: () => false);
        _levelValue = onlineGameMode[_gameModeValue].contains(_sharedPrefs.level)
            ? _sharedPrefs.level
            : onlineGameMode[_gameModeValue].first;
        _victoryCount = _sharedPrefs.victoryCount ?? 0;
        _defeatCount = _sharedPrefs.defeatCount ?? 0;
        notifyListeners();
      }
    
      bool get gameModePref => _sharedPrefs.gameMode ?? false;
      String get levelPref => _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;
    
      set updateGameMode(bool value) {
        _gameModeValue = value;
        setPrefGameMode = gameModeValue;
        updateLevel = onlineGameMode[value].first;
        notifyListeners();
      }
    
      String get levelValue => _levelValue;
    
      set updateLevel(String value) {
        _levelValue = value;
        setPrefLevel = levelValue;
        notifyListeners();
      }
    
      String get secretWord => _secretWord;
    
      set updateSecretWord(String value) {
        _secretWord = value;
        _hiddenWord = List<String>.generate(value.length, (i) => '_');
        notifyListeners();
      }
    
      String get clue => _clue;
    
      set updateClue(String value) {
        _clue = value;
        notifyListeners();
      }
    
      String get hiddenWord => _hiddenWord.join();
    
      void updateHiddenWord(int index, String letra) {
        _hiddenWord[index] = letra;
        notifyListeners();
      }
    
      List<String> get usedLetters => _usedLetters;
    
      void updateUsedLetters(String key) {
        _usedLetters.add(key);
        notifyListeners();
      }
    
      void resetUsedLetters() {
        _usedLetters.clear();
        notifyListeners();
      }
    
      int get errors => _errors;
    
      void addError() {
        _errors++;
        notifyListeners();
      }
    
      void resetSuccessAndErrors() {
        _errors = 0;
        notifyListeners();
      }
    
      int get victoryCount => _victoryCount;
      int get defeatCount => _defeatCount;
    
      void addVictory() {
        _victoryCount++;
        _sharedPrefs.victoryCount = _victoryCount;
        notifyListeners();
      }
    
      void addDefeat() {
        _defeatCount++;
        _sharedPrefs.defeatCount = _defeatCount;
        notifyListeners();
      }
    
      void resetScores() {
        _victoryCount = 0;
        _defeatCount = 0;
        notifyListeners();
      }
    
      void resetGame() {
        _errors = 0;
        _secretWord = null;
        _clue = '';
        _hiddenWord = [];
        _usedLetters = [];
        _usedLetters.clear();
        notifyListeners();
      }
    }