Ahora sí, corregido en teoría
All checks were successful
Build & Deploy Farolero / Análisis de código (push) Successful in 10s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m58s

This commit is contained in:
2026-05-05 20:54:13 +02:00
parent ff01d6c9e6
commit 1abdeb2f56
3 changed files with 8 additions and 90 deletions

View File

@@ -5,7 +5,6 @@ import '../estado/estado_juego.dart';
import '../modelos/inicio_partida_multijugador.dart';
import '../modelos/palabra.dart';
import '../modelos/partida.dart';
import '../modelos/usuario.dart';
import '../servicios/servicio_nearby.dart';
import '../servicios/servicio_permisos.dart';
import '../servicios/servicio_perfil_usuario.dart';
@@ -249,87 +248,6 @@ class _PantallaCrearPartidaState extends State<PantallaCrearPartida> {
return context.read<ServicioPerfilUsuario>().perfil.nombre;
}
/// Crea un nuevo usuario y lo agrega al pool
Future<String?> _crearNuevoUsuarioHost() async {
final controller = TextEditingController();
final l10n = AppLocalizations.of(context)!;
final nearby = context.read<ServicioNearby>();
controller.text = context.read<ServicioPerfilUsuario>().perfil.nombre;
final nombre = await showDialog<String>(
context: context,
builder: (ctx) => AlertDialog(
title: Text(l10n.createNewUser),
content: TextField(
controller: controller,
autofocus: true,
textCapitalization: TextCapitalization.words,
decoration: InputDecoration(
hintText: l10n.yourName,
prefixIcon: const Icon(Icons.person),
),
onSubmitted: (v) => Navigator.pop(ctx, v),
),
actions: [
TextButton(
onPressed: () => Navigator.pop(ctx),
child: Text(l10n.cancel),
),
TextButton(
onPressed: () => Navigator.pop(ctx, controller.text),
child: const Text('OK'),
),
],
),
);
if (nombre != null && nombre.trim().isNotEmpty) {
final nuevoUsuario = Usuario(
id: DateTime.now().millisecondsSinceEpoch.toString(),
nombre: nombre.trim(),
nick: context.read<ServicioPerfilUsuario>().perfil.nick,
avatar: context.read<ServicioPerfilUsuario>().perfil.avatarAsset,
foto: context.read<ServicioPerfilUsuario>().perfil.avatarAsset,
);
nearby.agregarUsuario(nuevoUsuario);
return nombre.trim();
}
return null;
}
/// Método original para pedir nombre (usado cuando pool vacío)
Future<String?> _pedirNombreHost() async {
final controller = TextEditingController();
controller.text = context.read<ServicioPerfilUsuario>().perfil.nombre;
final l10n = AppLocalizations.of(context)!;
return showDialog<String>(
context: context,
builder: (ctx) => AlertDialog(
title: Text(l10n.yourName),
content: TextField(
controller: controller,
autofocus: true,
textCapitalization: TextCapitalization.words,
decoration: InputDecoration(
hintText: l10n.yourName,
prefixIcon: const Icon(Icons.person),
),
onSubmitted: (v) => Navigator.pop(ctx, v),
),
actions: [
TextButton(
onPressed: () => Navigator.pop(ctx),
child: Text(l10n.cancel),
),
TextButton(
onPressed: () => Navigator.pop(ctx, controller.text),
child: const Text('OK'),
),
],
),
);
}
@override
void dispose() {
_controladorNombre.dispose();
@@ -362,7 +280,7 @@ class _PantallaCrearPartidaState extends State<PantallaCrearPartida> {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'¿Cómo quieres jugar?',
'¿Cómo quieres jugar?',
style: Theme.of(context).textTheme.titleLarge,
),
const SizedBox(height: 3),
@@ -413,7 +331,7 @@ class _PantallaCrearPartidaState extends State<PantallaCrearPartida> {
),
const SizedBox(height: 12),
// Categoría
// Categoría
Card(
child: Padding(
padding: const EdgeInsets.all(16),
@@ -517,7 +435,7 @@ class _PantallaCrearPartidaState extends State<PantallaCrearPartida> {
),
const SizedBox(height: 12),
// Configuración de partida
// Configuración de partida
Card(
child: Padding(
padding: const EdgeInsets.all(16),
@@ -530,7 +448,7 @@ class _PantallaCrearPartidaState extends State<PantallaCrearPartida> {
),
const SizedBox(height: 12),
// Número de impostores
// Número de impostores
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
@@ -591,7 +509,7 @@ class _PantallaCrearPartidaState extends State<PantallaCrearPartida> {
),
const SizedBox(height: 24),
// Botón iniciar
// Botón iniciar
SizedBox(
width: double.infinity,
height: 56,

View File

@@ -270,6 +270,7 @@ class _PantallaLobbyHostState extends State<PantallaLobbyHost> {
final l10n = AppLocalizations.of(context)!;
final controller = TextEditingController();
final nearby = context.read<ServicioNearby>();
final perfil = context.read<ServicioPerfilUsuario>().perfil;
final nombre = await showDialog<String>(
context: context,
@@ -299,7 +300,6 @@ class _PantallaLobbyHostState extends State<PantallaLobbyHost> {
);
if (nombre != null && nombre.trim().isNotEmpty) {
final perfil = context.read<ServicioPerfilUsuario>().perfil;
await nearby.crearUsuarioSala(
nombre.trim(),
seleccionar: true,

View File

@@ -706,7 +706,8 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
final l10n = AppLocalizations.of(context)!;
final controller = TextEditingController();
final nearby = context.read<ServicioNearby>();
controller.text = context.read<ServicioPerfilUsuario>().perfil.nombre;
final perfil = context.read<ServicioPerfilUsuario>().perfil;
controller.text = perfil.nombre;
final nombre = await showDialog<String>(
context: context,
@@ -736,7 +737,6 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
);
if (nombre != null && nombre.trim().isNotEmpty) {
final perfil = context.read<ServicioPerfilUsuario>().perfil;
await nearby.crearUsuarioSala(
nombre.trim(),
seleccionar: true,