Commit Graph
92 Commits
Author SHA1 Message Date
FreeTLab ae0d55c00f fix(android): target API level 35 as required by Google Play
Build & Deploy Farolero / Análisis de código (push) Successful in 14s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m16s
Play rejected version code 54 for still targeting 34.

From API 35 Android forces edge-to-edge: content is drawn behind the system
bars and it is up to each screen to keep clear of them. Seven screens had no
SafeArea and their bottom action button would have ended up under the
gesture bar, so FondoFarolero gains a respetarBarras flag that insets the
content while the background still paints full bleed. The seventeen screens
that already handle it are untouched.

The navigation bar colour is ignored under edge-to-edge, so its icons are
now forced light to stay visible over the dark background.

Verified on the merged manifest: targetSdkVersion 35, and the release bundle
builds. The visual result has not been checked on a device.
2026-07-25 22:27:28 +02:00
FreeTLab 633d156892 chore(deps): refresh the lockfile after running the suite
Build & Deploy Farolero / Análisis de código (push) Failing after 7s
Build & Deploy Farolero / Build APK + AAB release (push) Skipped
2026-07-25 20:36:49 +02:00
FreeTLab 4167319da8 feat(palabras): give every word its own impostor clue
The clue used to be the category name, which is the same for a hundred
words. Each of the 1000 words now carries a single associated trait:
Perro -> Fiel, Cebolla -> Hace llorar, Egipto -> Piramides.

18000 clues across the 18 languages. Files move to version 3; the loader
already reads both formats.

Verification caught 79 clues that contained the word they were meant to
hide and gave it away. Eight were exact matches caused by homonyms that do
not exist in Spanish: Schach and Xake mean both chess and check, and the
same happened with the Arabic 5G and the Chinese Apple and Spam. The other
71 contained the word as a substring, such as Libro -> "Pagine e
segnalibro". All rewritten.

banco_pistas_test guards it: per language it checks 10x100 words, no empty
clue and no clue containing its own word. One-character words are skipped
because any sentence contains them; the Turkish title for the film IT is a
bare "O".
2026-07-25 20:36:48 +02:00
FreeTLab b1b12cc8af feat(i18n): fill the translation backlog and add the new strings
40 keys existed only in app_es.arb and fell back to Spanish everywhere else
(15 of them in English). Most were multi-device screens: hostGame, votar,
clueIs, whoDoYouThinkIsTheImpostor, waitingPlayersSeeWord.

Adds those plus the new keys for impostor awareness, the adjusted impostor
count, the eliminated-player notice and the reconnection screen.

51 keys across the 18 supported languages.
2026-07-25 20:36:39 +02:00
FreeTLab 863690168c feat(multidispositivo): reconnection, impostor awareness and protocol fixes
Fixes
- SnapshotPartidaOnline no longer serializes esImpostor unless the game is
  over. Every phase change was broadcasting the impostor roles in clear to
  all clients.
- The impostor clue travels in its own field and only when the game enables
  it. It used to be sent as the category key ("todas" when no category was
  picked) and was overwritten by each phase snapshot.
- Eliminated players can no longer vote nor be voted for, on both the client
  screen and the host listener.
- Nearby listeners are removed on dispose; votes are no longer dispatched
  twice; votacionResultado no longer triggers two navigations.
- _jugadoresHostControlados handed the secret word to the host's own
  impostors in the payload.
- Impostor cap unified as maxImpostoresPara(n) for both modes, and the
  silent clamp in multi-device now reports the effective number.
- palabraAleatoria uses Random.secure.

Impostors know each other
- ConfigPartida.impostoresSeConocen, on by default. companerosImpostores is
  nullable: null means nothing to show, an empty list means "you are the
  only impostor".

Reconnection
- IdentidadDispositivo persists a stable device id; the host uses it as the
  clientId so a phone that drops and returns is the same client. Falls back
  to the endpointId for clients that do not send one.
- Usuario.absorbidoDe records the original owner when the host takes over a
  disconnected player, and they are handed back automatically on return.
- New solicitarResync/resync messages: the host replies with the current
  phase plus that client's own players, and the client jumps straight to the
  running phase.
- Readiness is keyed by clientId instead of endpointId, and a disconnected
  client no longer blocks the round.
- The retry gives up after three minutes, only reconnects to the host it
  belonged to, and is cancelled correctly while shutting down.

Per-word clue support
- The word bank loader accepts both the old list-of-strings format and the
  new one carrying a clue per word, falling back to the category clue.

Not verified on real devices: Nearby reconnection timing still needs two
Android phones.
2026-07-25 20:36:32 +02:00
FreeTLab bad641653c fix(test): make the suite runnable without device plugins
crearPartida clears the notes, which goes through SharedPreferences, and
ServicioNearby.dispose called notifyListeners after tearing the notifier
down. Both failed on plugin channels that do not exist in the test host.

Suite goes from 25 passing / 8 failing to a green run.
2026-07-25 20:36:15 +02:00
FreeTLab cee8c7c2ce Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Failing after 1s
Build & Deploy Farolero / Build APK + AAB release (push) Has been skipped
2026-05-12 21:50:18 +02:00
FreeTLab 8f78652ac6 Firma de la aplicación como pide play store 2026-05-12 21:50:16 +02:00
FreeTLab 90ada9099f Multitud de iconos más
Build & Deploy Farolero / Análisis de código (push) Successful in 14s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m46s
2026-05-12 01:36:41 +02:00
FreeTLab 158a7ae6a8 Iconografía básica 2026-05-12 01:20:19 +02:00
FreeTLab 5697c2a5a1 A ver si compila y publica en main
Build & Deploy Farolero / Análisis de código (push) Failing after 15s
Build & Deploy Farolero / Build APK + AAB release (push) Has been skipped
2026-05-12 01:11:59 +02:00
FreeTLab 7ee8c6ae2f Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero 2026-05-12 01:11:02 +02:00
FreeTLab 1885c85de9 uso de imágenes y eliminación de innecesarias 2026-05-12 01:09:05 +02:00
FreeTLab a055ed808c más iconos 2026-05-12 00:44:33 +02:00
FreeTLab 4334e06b04 multiples iconografías 2026-05-12 00:40:40 +02:00
FreeTLab be255d5ea3 algunos iconos PRO 2026-05-12 00:11:43 +02:00
FreeTLab 532e3b84f1 correcciones
Build & Deploy Farolero / Análisis de código (push) Successful in 14s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m34s
2026-05-11 23:21:13 +02:00
FreeTLab e60fc27d6f Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Failing after 17s
Build & Deploy Farolero / Build APK + AAB release (push) Has been skipped
2026-05-11 23:16:49 +02:00
FreeTLab 4599678e77 refactorización de pantallas 2026-05-11 23:16:38 +02:00
FreeTLab 1929d86689 corrección a un error
Build & Deploy Farolero / Análisis de código (push) Successful in 22s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 2m13s
2026-05-11 22:05:07 +02:00
FreeTLab 1bad40cbf5 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Failing after 24s
Build & Deploy Farolero / Build APK + AAB release (push) Has been skipped
2026-05-11 21:58:19 +02:00
FreeTLab 3c5d98d6dd literales y unificación de resultados en los dos modos de juego 2026-05-11 21:57:46 +02:00
FreeTLab 8ecd1ead32 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 23s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 2m12s
2026-05-11 21:10:46 +02:00
FreeTLab 9007728310 A ver qué tal los nuevos botones ahora 2026-05-11 21:10:39 +02:00
FreeTLab 8f3e907781 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 24s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 2m19s
2026-05-11 20:31:09 +02:00
FreeTLab e7c5b08ec0 Limpieza de peso de imágenes 2026-05-11 20:30:59 +02:00
FreeTLab 928cbd8a1d Corrección de errores
Build & Deploy Farolero / Análisis de código (push) Successful in 52s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 2m17s
2026-05-11 19:14:49 +02:00
FreeTLab df2659ab9d Nuevos assets para otras pantallas (meta)
Build & Deploy Farolero / Análisis de código (push) Failing after 56s
Build & Deploy Farolero / Build APK + AAB release (push) Has been skipped
2026-05-11 19:04:45 +02:00
FreeTLab d338e78612 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Failing after 41s
Build & Deploy Farolero / Build APK + AAB release (push) Has been skipped
2026-05-11 18:44:59 +02:00
FreeTLab 2503b64d34 nuevas pantallas 2026-05-11 18:44:51 +02:00
FreeTLab f8545fc783 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 39s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 2m27s
2026-05-11 18:05:21 +02:00
FreeTLab 112a8a6142 Cambio de icono y traducciones 2026-05-11 18:05:13 +02:00
FreeTLab 4bf8a01a20 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 34s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m48s
2026-05-10 23:54:13 +02:00
FreeTLab a93bab290a más mejoras 2026-05-10 23:54:09 +02:00
FreeTLab 873a5b7f4a Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 42s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m55s
2026-05-10 23:36:39 +02:00
FreeTLab a8494f7b01 corrección de botonesa, y por lo visto también traducciones 2026-05-10 23:36:31 +02:00
FreeTLab 4751a607bd Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 33s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m43s
2026-05-10 22:53:46 +02:00
FreeTLab fa7901019f aplicadas correcciones 2026-05-10 22:53:41 +02:00
FreeTLab 12af58d828 correcciones
Build & Deploy Farolero / Análisis de código (push) Successful in 35s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m49s
2026-05-10 22:27:10 +02:00
FreeTLab 76de0f88f1 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Failing after 37s
Build & Deploy Farolero / Build APK + AAB release (push) Has been skipped
2026-05-10 21:59:46 +02:00
FreeTLab 79a66c2e82 nueva pantalla molona 2026-05-10 21:59:38 +02:00
FreeTLab 8359d54000 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 25s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 2m9s
2026-05-10 21:32:33 +02:00
FreeTLab a5a4040daf super assets 2026-05-10 21:32:28 +02:00
FreeTLab 852fbfa225 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 18s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m23s
2026-05-10 17:28:42 +02:00
FreeTLab 42f01949c4 Cambios visuales completos 2026-05-10 17:28:35 +02:00
FreeTLab 8b4ca132aa Merge remote-tracking branch 'origin/main'
Build & Deploy Farolero / Análisis de código (push) Successful in 15s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m26s
2026-05-10 15:24:07 +02:00
FreeTLab 4ca793cd37 feat(ui): premium main screen 2026-05-10 15:21:48 +02:00
FreeTLab b7a00d1394 Prueba diseño
Build & Deploy Farolero / Análisis de código (push) Successful in 19s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m29s
2026-05-10 14:36:36 +02:00
FreeTLab 139e0816f4 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 15s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m58s
2026-05-10 13:28:21 +02:00
FreeTLab 5a315098a4 feat(ui): premium finish screen pipeline 2026-05-10 13:26:00 +02:00
FreeTLab 858e7f64d9 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 16s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m17s
2026-05-10 02:07:13 +02:00
FreeTLab 28554207ef Resumen de fin de partida espectacular 2026-05-10 02:07:08 +02:00
FreeTLab 20e48239db Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 17s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m17s
2026-05-10 00:58:31 +02:00
FreeTLab 8d1c712be7 avatares más grandes y usuario por defecto en partida individual 2026-05-10 00:26:26 +02:00
FreeTLab e6ee6adddc Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 15s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m17s
2026-05-09 23:59:06 +02:00
FreeTLab fbff87d108 avatares 2026-05-09 23:58:58 +02:00
FreeTLab 3d175987fb Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 15s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m20s
2026-05-09 21:18:35 +02:00
FreeTLab c77c6bb128 Nuevos avatares 2026-05-09 21:18:25 +02:00
FreeTLab 92361080f8 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 14s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m17s
2026-05-09 18:58:11 +02:00
FreeTLab 157be216d9 Optimización de iconos 2026-05-09 18:57:44 +02:00
FreeTLab f7a292d855 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 14s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m23s
2026-05-09 17:24:49 +02:00
FreeTLab e2cebafdbb Gamificación 2026-05-09 17:24:46 +02:00
FreeTLab dcecee805b Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 27s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m56s
2026-05-09 16:23:59 +02:00
FreeTLab a5d24c2721 NUEVA GESTIÓN DE USUARIOS Y PARTIDAS 2026-05-09 16:23:55 +02:00
FreeTLab f64f36b78f Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 12s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m18s
2026-05-05 23:09:38 +02:00
FreeTLab 0772ec526e Eliminar valores innecesarios de la configuración 2026-05-05 23:00:29 +02:00
FreeTLab 08235999d3 Mostrar la versión en la app 2026-05-05 22:56:25 +02:00
FreeTLab 031c190d74 Subidas para permitir compilación
Build & Deploy Farolero / Análisis de código (push) Successful in 11s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m20s
2026-05-05 22:48:05 +02:00
FreeTLab 1b0ec8dc57 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Failing after 12s
Build & Deploy Farolero / Build APK + AAB release (push) Has been skipped
2026-05-05 22:45:53 +02:00
FreeTLab cfe5d479ff Posible mejora en el multidispositivo 2026-05-05 22:45:51 +02:00
FreeTLab 016333f6c0 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 17s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m26s
2026-05-05 21:49:44 +02:00
FreeTLab 6e5e423ab4 Implementado:
No se puede marcar “vista” sin revelar la palabra antes.
Se puede volver a ver la palabra durante debate/votación/resultado.
Notas online privadas por partida y jugador.
Tests añadidos para notas scoped.
Ajusté roomId en el payload de inicio para que las notas no se mezclen entre partidas.
2026-05-05 21:49:40 +02:00
FreeTLab 1abdeb2f56 Ahora sí, corregido en teoría
Build & Deploy Farolero / Análisis de código (push) Successful in 10s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m58s
2026-05-05 20:54:13 +02:00
FreeTLab ff01d6c9e6 corrección de errores de compilación, eso espero
Build & Deploy Farolero / Análisis de código (push) Failing after 11s
Build & Deploy Farolero / Build APK + AAB release (push) Has been skipped
2026-05-05 20:48:23 +02:00
FreeTLab d61e79ec99 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Failing after 14s
Build & Deploy Farolero / Build APK + AAB release (push) Has been skipped
2026-05-05 20:38:25 +02:00
FreeTLab 5c9e8b2b9c Reintentos de ejecución de partidas online! 2026-05-05 20:38:13 +02:00
FreeTLab 2dbe505d77 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 12s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m16s
2026-05-04 22:23:20 +02:00
FreeTLab 3b0b10ea50 traducciones 2026-05-04 22:23:11 +02:00
FreeTLab 00dc3ee5e1 Merge branch 'main' of https://git.freetimelab.es/FreeTLab/farolero
Build & Deploy Farolero / Análisis de código (push) Successful in 11s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m21s
2026-05-04 20:58:05 +02:00
FreeTLab 957b42ea0c Gestión de usuarios y avatares en la aplicación. Gestión de traducciones de las palabras. 2026-05-04 20:58:02 +02:00
FreeTLab 7dd6c7bd74 Mejora flujo de datos en partidas multidispositivos
Build & Deploy Farolero / Análisis de código (push) Successful in 12s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m53s
2026-05-04 20:23:47 +02:00
FreeTLab 841f94e543 Completo y absoluto cambio de diseño
Build & Deploy Farolero / Análisis de código (push) Successful in 23s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m53s
2026-05-04 13:57:55 +02:00
FreeTLab c8e5cf25c5 Actualizar .gitea/workflows/build.yml
Build & Deploy Farolero / Build APK + AAB release (push) Has been skipped
Build & Deploy Farolero / Análisis de código (push) Failing after 13s
2026-04-27 14:43:52 +02:00
FreeTLab d850b66089 Actualizar .gitea/workflows/build.yml 2026-04-27 14:43:36 +02:00
FreeTLab da9bd0cd4a Actualizar .gitea/workflows/build.yml
Build & Deploy Farolero / Análisis de código (push) Failing after 4s
Build & Deploy Farolero / Build APK + AAB release (push) Has been skipped
2026-04-27 14:37:50 +02:00
FreeTLab d600835105 Actualizar .gitea/workflows/build.yml
Build & Deploy Farolero / Análisis de código (push) Failing after 6s
Build & Deploy Farolero / Build APK + AAB release (push) Has been cancelled
2026-04-27 14:36:44 +02:00
FreeTLab f3dcb99de1 Merge pull request 'fix: boton ver palabra del host ahora funciona' (#3) from feat/host-como-jugador into main
Build & Deploy Farolero / Análisis de código (push) Successful in 10s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m18s
Reviewed-on: #3
2026-04-24 21:37:42 +02:00
FreeTLab 3f4ec2d20f Merge pull request 'feat: host como jugador' (#2) from feat/host-como-jugador into main
Build & Deploy Farolero / Análisis de código (push) Successful in 10s
Build & Deploy Farolero / Build APK + AAB release (push) Successful in 1m51s
Reviewed-on: #2
2026-04-24 20:03:59 +02:00
FreeTLab a59a9a481e Merge pull request 'feat/host-como-jugador' (#1) from feat/host-como-jugador into main
Build & Deploy Farolero / Análisis de código (push) Failing after 19s
Build & Deploy Farolero / Build APK + AAB release (push) Has been skipped
Reviewed-on: #1
2026-04-24 19:50:02 +02:00
FreeTLab 0afcf4e15b Actualizar .gitea/workflows/build.yml
Build & Deploy Farolero / Análisis de código (push) Successful in 9s
Build & Deploy Farolero / Build APK + AAB release (push) Failing after 3s
2026-04-07 00:57:55 +02:00
FreeTLab 1913622de5 revert 4ef25c82ab
revert ci: workflow profesional — análisis + bump + build + deploy + notify

Basado en el patrón de javihogar-android:
- PATH global como env (actions/checkout funciona)
- Job análisis separado
- Auto-bump versión patch en cada push a main
- Notify Telegram con estado
- [ci skip] en commit de versión
2026-04-07 00:56:56 +02:00
FreeTLab a143e93280 revert 4ef25c82ab
revert ci: workflow profesional — análisis + bump + build + deploy + notify

Basado en el patrón de javihogar-android:
- PATH global como env (actions/checkout funciona)
- Job análisis separado
- Auto-bump versión patch en cada push a main
- Notify Telegram con estado
- [ci skip] en commit de versión
2026-04-07 00:53:51 +02:00