La mano escogida también se guarda en preferencias

parent 2efccfc7
...@@ -57,6 +57,6 @@ class ListaDificultad extends ChangeNotifier { ...@@ -57,6 +57,6 @@ class ListaDificultad extends ChangeNotifier {
notifyListeners(); notifyListeners();
final prefs = await SharedPreferences.getInstance(); final prefs = await SharedPreferences.getInstance();
prefs.setInt("dificultad", _indiceSeleccionado); await prefs.setInt("dificultad", _indiceSeleccionado);
} }
} }
\ No newline at end of file
...@@ -14,6 +14,7 @@ import 'package:peponator/widgets/peponator_mensaje.dart'; ...@@ -14,6 +14,7 @@ import 'package:peponator/widgets/peponator_mensaje.dart';
import 'package:peponator/widgets/teclado_numerico.dart'; import 'package:peponator/widgets/teclado_numerico.dart';
import 'package:peponator/widgets/tu_mensaje.dart'; import 'package:peponator/widgets/tu_mensaje.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:shared_preferences/shared_preferences.dart';
// TODO: PantallaJuego debería introducirse en una vista PageStorage para almacenar el estado del scrollController // TODO: PantallaJuego debería introducirse en una vista PageStorage para almacenar el estado del scrollController
...@@ -47,6 +48,7 @@ class _PantallaJuegoState extends State<PantallaJuego> ...@@ -47,6 +48,7 @@ class _PantallaJuegoState extends State<PantallaJuego>
List<Widget> mensajes = []; List<Widget> mensajes = [];
final Future<SharedPreferences> prefs = SharedPreferences.getInstance();
late bool manoDerecha = true; late bool manoDerecha = true;
List<Pista> pistas = []; List<Pista> pistas = [];
...@@ -71,6 +73,8 @@ class _PantallaJuegoState extends State<PantallaJuego> ...@@ -71,6 +73,8 @@ class _PantallaJuegoState extends State<PantallaJuego>
super.initState(); super.initState();
_loadRecords(); _loadRecords();
prefs.then((p) => manoDerecha = p.getBool("manoDerecha") ?? true);
recordTextController.addListener(() => recordTextController.addListener(() =>
setState(() { setState(() {
jugador = recordTextController.text; jugador = recordTextController.text;
...@@ -198,9 +202,8 @@ class _PantallaJuegoState extends State<PantallaJuego> ...@@ -198,9 +202,8 @@ class _PantallaJuegoState extends State<PantallaJuego>
case OpcionPausa.reanudar: case OpcionPausa.reanudar:
break; break;
case OpcionPausa.cambioMano: case OpcionPausa.cambioMano:
setState(() { setState(() { manoDerecha = !manoDerecha; });
manoDerecha = !manoDerecha; _guardarPreferenciaMano();
});
break; break;
case OpcionPausa.nuevaPartida: case OpcionPausa.nuevaPartida:
setState(() {_nuevaPartida();}); setState(() {_nuevaPartida();});
...@@ -264,13 +267,15 @@ class _PantallaJuegoState extends State<PantallaJuego> ...@@ -264,13 +267,15 @@ class _PantallaJuegoState extends State<PantallaJuego>
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Consumer<ListaDificultad>(builder: (context, manager, child) { return Consumer<ListaDificultad>(builder: (context, manager, child) {
return OrientationBuilder(builder: (context, orientation) { return FutureBuilder(future: prefs, builder: (context, snapshot) {
return Scaffold( return OrientationBuilder(builder: (context, orientation) {
backgroundColor: (mostrarPistas)? Theme.of(context).colorScheme.surfaceDim : null, return Scaffold(
body: manager.listo backgroundColor: (mostrarPistas)? Theme.of(context).colorScheme.surfaceDim : null,
? _buildPaginaJuego(context, orientation) body: manager.listo
: CircularProgressIndicator() ? _buildPaginaJuego(context, orientation)
); : CircularProgressIndicator()
);
});
}); });
}); });
} }
...@@ -1058,6 +1063,12 @@ class _PantallaJuegoState extends State<PantallaJuego> ...@@ -1058,6 +1063,12 @@ class _PantallaJuegoState extends State<PantallaJuego>
await recordsFile.writeAsString(sb.toString()); await recordsFile.writeAsString(sb.toString());
} }
void _guardarPreferenciaMano() async {
final prefs = await SharedPreferences.getInstance();
await prefs.setBool("manoDerecha", manoDerecha);
}
} }
enum OpcionesFinPartida { enum OpcionesFinPartida {
......
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