feat: discovery automático + QR como fallback en PantallaUnirse
All checks were successful
Build & Deploy Farolero / Análisis de código (push) Successful in 9s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m7s

- Discovery: busca hosts cercanos automáticamente y los muestra en lista
- Cada host aparece como tile tocable con nombre de la sala
- QR fallback: botón 'Escanear QR' debajo de la lista
- ServicioNearby: hostsEncontrados map, pararBusqueda(), no auto-connect
- Flujo: nombre → buscar → lista de salas (o QR) → conectar → espera
- l10n: searchGames, searchingGames, noGamesFound, orScanQR (es/en)
This commit is contained in:
ShanaiaBot
2026-04-04 03:20:32 +02:00
parent 6428667e11
commit 757344ca48
22 changed files with 732 additions and 133 deletions

View File

@@ -1070,6 +1070,42 @@ abstract class AppLocalizations {
/// In es, this message translates to:
/// **'Esperando a que el host inicie la partida...'**
String get waitingForHost;
/// No description provided for @enterNameToSearch.
///
/// In es, this message translates to:
/// **'Escribe tu nombre para buscar partidas cercanas'**
String get enterNameToSearch;
/// No description provided for @searchGames.
///
/// In es, this message translates to:
/// **'Buscar partidas'**
String get searchGames;
/// No description provided for @searchingGames.
///
/// In es, this message translates to:
/// **'Buscando partidas cercanas...'**
String get searchingGames;
/// No description provided for @noGamesFound.
///
/// In es, this message translates to:
/// **'No se encontraron partidas'**
String get noGamesFound;
/// No description provided for @noGamesFoundHint.
///
/// In es, this message translates to:
/// **'Asegúrate de que el host tiene la sala abierta y estáis cerca'**
String get noGamesFoundHint;
/// No description provided for @orScanQR.
///
/// In es, this message translates to:
/// **'¿No aparece? Escanea el QR del host'**
String get orScanQR;
}
class _AppLocalizationsDelegate

View File

@@ -511,4 +511,24 @@ class AppLocalizationsAr extends AppLocalizations {
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
@override
String get searchGames => 'Buscar partidas';
@override
String get searchingGames => 'Buscando partidas cercanas...';
@override
String get noGamesFound => 'No se encontraron partidas';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
}

View File

@@ -514,4 +514,24 @@ class AppLocalizationsCa extends AppLocalizations {
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
@override
String get searchGames => 'Buscar partidas';
@override
String get searchingGames => 'Buscando partidas cercanas...';
@override
String get noGamesFound => 'No se encontraron partidas';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
}

View File

@@ -517,4 +517,24 @@ class AppLocalizationsDe extends AppLocalizations {
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
@override
String get searchGames => 'Buscar partidas';
@override
String get searchingGames => 'Buscando partidas cercanas...';
@override
String get noGamesFound => 'No se encontraron partidas';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
}

View File

@@ -512,4 +512,23 @@ class AppLocalizationsEn extends AppLocalizations {
@override
String get waitingForHost => 'Waiting for the host to start the game...';
@override
String get enterNameToSearch => 'Enter your name to search for nearby games';
@override
String get searchGames => 'Search games';
@override
String get searchingGames => 'Searching for nearby games...';
@override
String get noGamesFound => 'No games found';
@override
String get noGamesFoundHint =>
'Make sure the host has the room open and you are nearby';
@override
String get orScanQR => 'Not showing up? Scan the host\'s QR code';
}

View File

@@ -513,4 +513,24 @@ class AppLocalizationsEs extends AppLocalizations {
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
@override
String get searchGames => 'Buscar partidas';
@override
String get searchingGames => 'Buscando partidas cercanas...';
@override
String get noGamesFound => 'No se encontraron partidas';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
}

View File

@@ -516,4 +516,24 @@ class AppLocalizationsEu extends AppLocalizations {
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
@override
String get searchGames => 'Buscar partidas';
@override
String get searchingGames => 'Buscando partidas cercanas...';
@override
String get noGamesFound => 'No se encontraron partidas';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
}

View File

@@ -514,4 +514,24 @@ class AppLocalizationsFr extends AppLocalizations {
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
@override
String get searchGames => 'Buscar partidas';
@override
String get searchingGames => 'Buscando partidas cercanas...';
@override
String get noGamesFound => 'No se encontraron partidas';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
}

View File

@@ -513,4 +513,24 @@ class AppLocalizationsHi extends AppLocalizations {
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
@override
String get searchGames => 'Buscar partidas';
@override
String get searchingGames => 'Buscando partidas cercanas...';
@override
String get noGamesFound => 'No se encontraron partidas';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
}

View File

@@ -514,4 +514,24 @@ class AppLocalizationsIt extends AppLocalizations {
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
@override
String get searchGames => 'Buscar partidas';
@override
String get searchingGames => 'Buscando partidas cercanas...';
@override
String get noGamesFound => 'No se encontraron partidas';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
}

View File

@@ -511,4 +511,24 @@ class AppLocalizationsJa extends AppLocalizations {
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
@override
String get searchGames => 'Buscar partidas';
@override
String get searchingGames => 'Buscando partidas cercanas...';
@override
String get noGamesFound => 'No se encontraron partidas';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
}

View File

@@ -511,4 +511,24 @@ class AppLocalizationsKo extends AppLocalizations {
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
@override
String get searchGames => 'Buscar partidas';
@override
String get searchingGames => 'Buscando partidas cercanas...';
@override
String get noGamesFound => 'No se encontraron partidas';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
}

View File

@@ -514,4 +514,24 @@ class AppLocalizationsNl extends AppLocalizations {
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
@override
String get searchGames => 'Buscar partidas';
@override
String get searchingGames => 'Buscando partidas cercanas...';
@override
String get noGamesFound => 'No se encontraron partidas';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
}

View File

@@ -514,4 +514,24 @@ class AppLocalizationsPl extends AppLocalizations {
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
@override
String get searchGames => 'Buscar partidas';
@override
String get searchingGames => 'Buscando partidas cercanas...';
@override
String get noGamesFound => 'No se encontraron partidas';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
}

View File

@@ -515,4 +515,24 @@ class AppLocalizationsPt extends AppLocalizations {
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
@override
String get searchGames => 'Buscar partidas';
@override
String get searchingGames => 'Buscando partidas cercanas...';
@override
String get noGamesFound => 'No se encontraron partidas';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
}

View File

@@ -514,4 +514,24 @@ class AppLocalizationsRu extends AppLocalizations {
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
@override
String get searchGames => 'Buscar partidas';
@override
String get searchingGames => 'Buscando partidas cercanas...';
@override
String get noGamesFound => 'No se encontraron partidas';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
}

View File

@@ -513,4 +513,24 @@ class AppLocalizationsTr extends AppLocalizations {
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
@override
String get searchGames => 'Buscar partidas';
@override
String get searchingGames => 'Buscando partidas cercanas...';
@override
String get noGamesFound => 'No se encontraron partidas';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
}

View File

@@ -510,6 +510,26 @@ class AppLocalizationsZh extends AppLocalizations {
@override
String get waitingForHost => 'Esperando a que el host inicie la partida...';
@override
String get enterNameToSearch =>
'Escribe tu nombre para buscar partidas cercanas';
@override
String get searchGames => 'Buscar partidas';
@override
String get searchingGames => 'Buscando partidas cercanas...';
@override
String get noGamesFound => 'No se encontraron partidas';
@override
String get noGamesFoundHint =>
'Asegúrate de que el host tiene la sala abierta y estáis cerca';
@override
String get orScanQR => '¿No aparece? Escanea el QR del host';
}
/// The translations for Chinese, as used in Taiwan (`zh_TW`).