
# ZPlay Android TV App

Proyecto Android TV que consume el mismo backend/panel existente del portal web.

## Qué hace
- login contra `/api/user/login`
- mantiene sesión por cookie
- carga canales desde `/api/app/config`
- reproduce HLS con Media3/ExoPlayer
- guarda último canal en `/api/user/last-channel`
- muestra guía desde `/api/app/epg/:channelId`
- interfaz inspirada en el reproductor web actual
- navegación completa por D-pad

## Compatibilidad
Este proyecto apunta a **Android TV / Google TV con Android 6.0+ (API 23)**.

## Configuración rápida
1. Abre la carpeta `androidtv-app` en Android Studio.
2. Espera el sync de Gradle.
3. En la pantalla de login, configura la URL base del backend si no usas la predeterminada.
4. Compila en un emulador Android TV o dispositivo real.

## URL base del backend
La app usa por defecto:
- `http://10.10.10.135:3000/`

Puedes cambiarla en la pantalla de acceso.

## Notas
- `usesCleartextTraffic=true` está habilitado para soportar pruebas por HTTP/LAN.
- Si vas a publicar en Play, usa HTTPS y endpoint final.
- La app usa Compose y Media3.


### Fix aplicado
Si antes sincronizaba mal o reproducía sin audio:
- se corrigió el plugin Compose del proyecto
- se agregó el módulo HLS de Media3
- se reforzó la configuración de audio de ExoPlayer


### v11.3.2
- corregido `buildConfigField` de `DEFAULT_BASE_URL`
- la app ahora puede consultar `/api/public/androidtv-config`
- el panel web permite administrar la URL base por defecto


### v11.3.3
- corregido error de recursos Material3 NoActionBar
- agregada dependencia Material Components para temas XML


### v11.3.4
- corregidos errores Kotlin de `ZPlayTvApp.kt`
- arreglada la navegación por teclas del reproductor


### v11.3.5
- `ZPlayTvApp.kt` rehecho para dejar el proyecto compilable
- limpiado el manejo de D-pad y navegación del reproductor


### v11.3.6
- corregidos imports de Compose/teclado
- `BorderStroke` arreglado
- tarjetas del drawer ahora usan `Modifier.clickable`


## v11.3.7 Android TV
- corregido import inválido `nativeKeyEvent` en `ZPlayTvApp.kt`
- el acceso a `keyEvent.nativeKeyEvent` queda sin import explícito


## v11.4.1 Android TV
- pantalla del reproductor Android TV ajustada para parecerse mucho más al portal web
- drawer lateral más similar al menú web: rail numérico compacto + tarjetas translúcidas
- overlays derechos reajustados con hora, canal, ahora/sigue y descripción
- cabecera superior derecha estilo portal con logo + estado EN VIVO
- barra inferior informativa y caja de usuario más cercanas al diseño web
- tipografías, tamaños y espaciados afinados para TV y aspecto casi calcado al portal


## v11.8.3.6.9.6
- corregida la carga de imágenes del fondo de inicio desde el panel
- las rutas de las imágenes ahora se resuelven correctamente antes de mostrarse
- ajuste aplicado en móvil y Android TV para evitar fondos vacíos por URLs relativas
