Ahora se guarda la dificultad en las preferencias

parent 85fe25b0
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:peponator/modelo/dificultad.dart'; import 'package:peponator/modelo/dificultad.dart';
import 'package:shared_preferences/shared_preferences.dart';
// TODO: CARGAR LAS DIFICULTADES CARGADAS EN MEMORIA // TODO: CARGAR LAS DIFICULTADES CARGADAS EN MEMORIA
class ListaDificultad extends ChangeNotifier { class ListaDificultad extends ChangeNotifier {
...@@ -8,13 +9,30 @@ class ListaDificultad extends ChangeNotifier { ...@@ -8,13 +9,30 @@ class ListaDificultad extends ChangeNotifier {
Dificultad.normal, Dificultad.normal,
Dificultad.dificil Dificultad.dificil
]; ];
int _indiceSeleccionado = 0; int _indiceSeleccionado = 0;
bool _cargando = true;
ListaDificultad() {
_getDificultadPreferencias();
}
List<Dificultad> get dificultades => List.unmodifiable(_dificultades); List<Dificultad> get dificultades => List.unmodifiable(_dificultades);
int get length => _dificultades.length; int get length => _dificultades.length;
int get indiceSeleccionado => _indiceSeleccionado; int get indiceSeleccionado => _indiceSeleccionado;
Dificultad get seleccionada => _dificultades[_indiceSeleccionado]; Dificultad get seleccionada => _dificultades[_indiceSeleccionado];
bool get cargando => _cargando;
bool get listo => !_cargando;
void _getDificultadPreferencias() async {
final prefs = await SharedPreferences.getInstance();
_indiceSeleccionado = prefs.getInt("dificultad") ?? 0;
_cargando = false;
notifyListeners();
}
Dificultad get(int index) { Dificultad get(int index) {
return _dificultades[index]; return _dificultades[index];
} }
...@@ -34,8 +52,11 @@ class ListaDificultad extends ChangeNotifier { ...@@ -34,8 +52,11 @@ class ListaDificultad extends ChangeNotifier {
notifyListeners(); notifyListeners();
} }
void select(int indice) { void select(int indice) async {
_indiceSeleccionado = indice; _indiceSeleccionado = indice;
notifyListeners(); notifyListeners();
final prefs = await SharedPreferences.getInstance();
prefs.setInt("dificultad", _indiceSeleccionado);
} }
} }
\ No newline at end of file
...@@ -10,13 +10,16 @@ class PantallaDificultad extends StatelessWidget { ...@@ -10,13 +10,16 @@ class PantallaDificultad extends StatelessWidget {
return Consumer<ListaDificultad>( return Consumer<ListaDificultad>(
builder: (context, manager, child) { builder: (context, manager, child) {
return SafeArea( return SafeArea(
child: ListView.separated( child: manager.listo
itemBuilder: (context, index) { ? ListView.separated(
return DificultadWidget(indice: index,); itemBuilder: (context, index) {
}, return DificultadWidget(indice: index,);
separatorBuilder: (context, index) => const SizedBox(height: 8), },
itemCount: manager.length) separatorBuilder: (context, index) => const SizedBox(height: 8),
); itemCount: manager.length
)
: CircularProgressIndicator()
);
} }
); );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or sign in to comment