feat: permisos automáticos + cableado crear partida → lobby multi
- ServicioPermisos: solicita BT+Location automáticamente con diálogo si denegados - PantallaCrearPartida: modo multi → pide nombre host → permisos → lobby con QR - PantallaUnirse: pide permisos antes de iniciar discovery - ServicioNearby: pararBusqueda() para limpiar discovery sin desconectar - Botón iniciar habilitado en modo multi sin necesidad de 3 jugadores locales - permission_handler añadido como dependencia
This commit is contained in:
@@ -3,6 +3,7 @@ import 'package:mobile_scanner/mobile_scanner.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:farolero/l10n/generated/app_localizations.dart';
|
||||
import '../servicios/servicio_nearby.dart';
|
||||
import '../servicios/servicio_permisos.dart';
|
||||
import '../tema/tema_app.dart';
|
||||
|
||||
/// Pantalla para unirse a una partida multidispositivo.
|
||||
@@ -31,10 +32,20 @@ class _PantallaUnirseState extends State<PantallaUnirse> {
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
/// Paso 1: validar nombre e iniciar discovery
|
||||
/// Paso 1: validar nombre, pedir permisos e iniciar discovery
|
||||
Future<void> _iniciarBusqueda() async {
|
||||
if (!_formKey.currentState!.validate()) return;
|
||||
|
||||
// Solicitar permisos automáticamente
|
||||
final permisosOk = await ServicioPermisos.solicitarPermisosNearby(context);
|
||||
if (!permisosOk) {
|
||||
setState(() {
|
||||
_error = 'Se necesitan permisos de Bluetooth y ubicación para buscar partidas.';
|
||||
});
|
||||
return;
|
||||
}
|
||||
|
||||
if (!mounted) return;
|
||||
final nearby = context.read<ServicioNearby>();
|
||||
final ok = await nearby.buscarHosts(_nombreController.text.trim());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user