LCOV - code coverage report
Current view: top level - lib/exercises - exercises_provider.dart Coverage Total Hit
Test: lcov.info Lines: 0.0 % 66 0
Test Date: 2025-05-10 20:26:13 Functions: - 0 0

            Line data    Source code
       1              : import 'package:amadeus_proto/api/utils/api_base.dart';
       2              : import 'package:amadeus_proto/api/models/exercise_info.dart';
       3              : import 'package:flutter/material.dart';
       4              : 
       5              : /// A provider that manage exercise state.
       6              : ///
       7              : /// It provides method to :
       8              : /// - [verify] the [_selectedAnswer] to check if it's the right [answer]
       9              : /// - [reset] the provider when loading the exercise
      10              : /// - Checking if the game is finished with [checkEndGame]
      11              : class ExerciseProvider extends ChangeNotifier {
      12              :   bool? _correctAnswer;
      13              :   int _progress = 0;
      14              :   bool _nextQuestion = false;
      15              :   bool _isReset = false;
      16              :   bool _displayDialog = false;
      17              :   bool _isInitialized = false;
      18              :   int _lives = 3;
      19              :   dynamic _answer;
      20              :   dynamic _selectedAnswer;
      21              :   List<String> _choices = [];
      22              :   String _question = "";
      23              : 
      24              :   ExerciseInfo? exerciseInfo;
      25              : 
      26              :   @protected
      27              :   late ApiBase apiBase;
      28            0 :   void setApiBase(ApiBase value) {
      29            0 :     apiBase = value;
      30              :   }
      31              : 
      32              : 
      33            0 :   dynamic get selectedAnswer => _selectedAnswer;
      34            0 :   set selectedAnswer(dynamic value) {
      35            0 :     _selectedAnswer = value;
      36            0 :     notifyListeners();
      37              :   }
      38              : 
      39            0 :   String get question => _question;
      40            0 :   set question(String value) {
      41            0 :     _question = value;
      42            0 :     notifyListeners();
      43              :   }
      44              : 
      45            0 :   bool? get correctAnswer => _correctAnswer;
      46            0 :   set correctAnswer(bool? value) {
      47            0 :     _correctAnswer = value;
      48            0 :     notifyListeners();
      49              :   }
      50              : 
      51            0 :   bool get isReset => _isReset;
      52            0 :   set isReset(bool value) {
      53            0 :     _isReset = value;
      54            0 :     notifyListeners();
      55              :   }
      56              : 
      57            0 :   int get progress => _progress;
      58            0 :   set progress(int value) {
      59            0 :     _progress = value;
      60            0 :     notifyListeners();
      61              :   }
      62              : 
      63            0 :   bool get nextQuestion => _nextQuestion;
      64            0 :   set nextQuestion(bool value) {
      65            0 :     _nextQuestion = value;
      66            0 :     notifyListeners();
      67              :   }
      68              : 
      69            0 :   bool get displayDialog => _displayDialog;
      70            0 :   set displayDialog(bool value) {
      71            0 :     _displayDialog = value;
      72            0 :     notifyListeners();
      73              :   }
      74              : 
      75            0 :   bool get isInitialized => _isInitialized;
      76            0 :   set isInitialized(bool value) {
      77            0 :     _isInitialized = value;
      78            0 :     notifyListeners();
      79              :   }
      80              : 
      81            0 :   int get lives => _lives;
      82            0 :   set lives(int value) {
      83            0 :     _lives = value;
      84            0 :     notifyListeners();
      85              :   }
      86              : 
      87            0 :   List<String> get choices => _choices;
      88            0 :   set choices(List<String> choices) {
      89            0 :     _choices = choices;
      90            0 :     notifyListeners();
      91              :   }
      92              : 
      93            0 :   dynamic get answer => _answer;
      94            0 :   set answer(dynamic value) {
      95            0 :     _answer = value;
      96            0 :     notifyListeners();
      97              :   }
      98              : 
      99            0 :   bool checkEndGame() {
     100            0 :     return lives == 0;
     101              :   }
     102              : 
     103            0 :   bool isCorrectAnswer() {
     104            0 :     return selectedAnswer == answer;
     105              :   }
     106              : 
     107            0 :   void reset() {
     108            0 :     _lives = 3;
     109            0 :     _isInitialized = false;
     110            0 :     _answer = -1;
     111            0 :     _selectedAnswer = null;
     112            0 :     _nextQuestion = false;
     113            0 :     _displayDialog = false;
     114            0 :     _correctAnswer = null;
     115              :   }
     116              : 
     117            0 :   void resetAnswer() {
     118            0 :     _selectedAnswer = null;
     119              :   }
     120              : 
     121            0 :   void verify(dynamic data) {
     122            0 :     selectedAnswer = data;
     123            0 :     if (selectedAnswer != answer) {
     124            0 :       _lives--;
     125            0 :       correctAnswer = false;
     126              :     }
     127            0 :     selectedAnswer = null;
     128              :   }
     129              : }
        

Generated by: LCOV version 2.3-1