- PlayerActivity: Referer vuelve a ser channelUrl (URL específica del canal)
- StreamUrlResolver: Vuelve a crear su propio cliente con Google DNS
- Eliminados cambios problemáticos de SSL trust-all y múltiples DNS
- Mantenidos solo los cambios necesarios: streamtp10.com en lugar de streamtpcloud.com
Esto debería hacer que los streams vuelvan a funcionar como en v10.1.7
- Corregido PlayerActivity para usar NetworkUtils con 4 servidores DNS
- Agregado soporte para certificados SSL no válidos (evita MITM de ISP)
- Actualizados headers Referer y Origin a streamtp10.com
- Mejorado StreamUrlResolver con múltiples patrones de extracción
- Aumentados timeouts de red a 20-30 segundos
- Agregado manejo de errores 401/403/404 específicos
- Remove DNSSetter.java (System.setProperty doesn't affect Android DNS)
- Update NetworkUtils with 4 DNS over HTTPS providers:
* Google DNS (8.8.8.8) - Primary
* Cloudflare (1.1.1.1) - Secondary
* AdGuard (94.140.14.14) - Tertiary
* Quad9 (9.9.9.9) - Quaternary
- Update DeviceRegistry to use NetworkUtils client
- Update UpdateManager to use NetworkUtils client
- Remove DNSSetter call from PlayerActivity
This ensures the app works even when ISPs block specific DNS servers.
## Cambios realizados
- Migración completa de ExoPlayer 2.x a AndroidX Media3 1.5.0
- Actualización de dependencias: media3-exoplayer, media3-ui, media3-session, etc.
- Actualización de imports en PlayerActivity.java
- Actualización del namespace de PlayerView en activity_player.xml
- Incremento de versionCode a 100100 y versionName a 10.1.0
- Actualización de compileSdk y targetSdk a 35 para compatibilidad
- Soporte mejorado para Android TV/Leanback
- Preparación para MediaSession integrado
## Testing
- Compilación exitosa sin errores
- APK generado: StreamPlayer-v10.1.0-Media3-debug.apk
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Updated EventRepository to point to streamtpcloud.com/eventos.json
- Updated ChannelRepository URLs to streamtpcloud.com
- Updated PlayerActivity Origin header
- Bumped version to 10.0.2
- Fixed: Value <! DOCTYPE cannot be converted to JSONArray in EventRepository
- Fixed: Added HTML validation in UpdateManager and DeviceRegistry
- Fixed: Improved HTTP error handling in StreamUrlResolver
- Improved: Error messages in PlayerActivity
- Bumped version to 9.4.3
- Incremented version to 9.4.1 (versionCode: 94100)
- Added keep screen on functionality during video playback
- Implemented device deletion in dashboard with confirmation
- Enhanced device management with delete capability
- Improved user experience during media playback
- Better device lifecycle management in dashboard
- Added confirmation dialog for device deletion
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Critical Fix:
- Fixed audio continuing to play when leaving the app
- PlayerActivity now properly manages ExoPlayer lifecycle
- No more background audio when switching to other apps
Lifecycle Management:
- onStop(): Releases ExoPlayer when app goes to background
- onStart(): Reloads stream only if player is null (prevents duplicates)
- onDestroy(): Final cleanup of player resources
- Proper memory management prevents leaks
Android TV Integration:
- Perfect multitasking behavior for TV environment
- Clean switching between streaming apps (YouTube, Netflix, etc.)
- No audio interference when navigating Android TV interface
- Stream resumes automatically when returning to app
Technical Details:
- Dual release points: onStop() and onDestroy() for safety
- Smart reconstruction: Only reload when necessary
- Memory safe: No ExoPlayer leaks or resource issues
- TV optimized: Seamless integration with Android TV ecosystem
User Experience:
- Background audio completely stopped when leaving app
- Clean transitions between different streaming services
- Automatic stream resumption when returning to StreamPlayer
- Professional Android TV behavior
All existing features maintained:
- Tab interface with visible focus (Channels/Events)
- Real-time events with Argentina timezone
- Alphabetical channel sorting
- DNS bypass for global access
- TV-optimized navigation and UI
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
DNS Features:
- Multiple DNS providers (Google, Cloudflare, OpenDNS)
- Automatic DNS rotation for bypassing geo-blocks
- Enhanced DNS caching and resolution
- Fallback DNS mechanisms
- Smart DNS switching based on streaming success
Code Changes:
- Update build.gradle with DNS libraries
- Add DNS bypass configuration to PlayerActivity
- Update AndroidManifest.xml for DNS permissions
- Add TV-specific DNS resources
Bypass Features:
- Geo-block circumvention
- Regional content access
- Alternative DNS routes
- Connection optimization
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Major changes:
- Add ChannelAdapter for grid display functionality
- Add ChannelRepository for data management
- Add PlayerActivity for dedicated video playback
- Add StreamChannel model for channel representation
- Update MainActivity to support grid layout
- Update activity_main.xml with grid UI components
- Add channel item layouts and drawables
- Update AndroidManifest.xml with new activity
- Update build.gradle dependencies
This implements the requested "grilla arreglada" functionality with proper channel grid display and management.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>